Kafka R语言 WebService 主从复制 ajax architecture laravel4 lazyloadjs 网页后台模板 安卓项目实战 easyui视频 两个正态分布相乘 linux超级用户 当前线程等待5秒 oracle查看数据库 matlab颜色代码 idea导入多个项目 linux查看jdk安装路径 yml文件注释 判断bigdecimal是否为空 python加注释 python中文手册 python抛异常 python代码 java日期 java基础教学 java方法的重载 javastring类型 java方法 java数组添加元素 java数组 java数组转集合 java日期格式化 linux入门基础 蓝牙运动耳机排行榜 黑白照片一键变彩色 ae脚本管理器 手机主题之家 8元秒电脑 dnf武极刷图加点
当前位置: 首页 > 学习教程  > 编程语言

【洛谷】P1601 A+B Problem(高精)

2020/12/28 18:33:26 文章标签:

【洛谷】P1601 AB Problem&#xff08;高精&#xff09; #include<bits/stdc.h> using namespace std; string stra,strb; int c[510]; int main(){//一、读入 cin>>stra>>strb;//二、补成一样长 while(stra.length()>strb.length()){strb0strb;}while(st…

【洛谷】P1601 A+B Problem(高精)

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
string stra,strb;
int c[510];
int main(){
	//一、读入 
	cin>>stra>>strb;
	//二、补成一样长 
	while(stra.length()>strb.length()){
		strb='0'+strb;
	}
	while(stra.length()<strb.length()){
		stra='0'+stra;
	}
	//三、计算 
	int len=stra.length(),jin=0; 
	for(int i=len-1;i>=0;i--){
			c[i]=stra[i]-'0'+strb[i]-'0'+jin;
			jin=c[i]/10;
			c[i]=c[i]%10;
	}
	//四、输出 (考虑有多个0的情况)
	if(jin){//若加到最后一位产生进位,输出进位 
		printf("%d",jin);
		for(int i=0;i<len;i++) printf("%d",c[i]);
	}else{
		int flag=0,flag1=0;
		for(int i=0;i<len;i++){
			if(c[i]==0 && flag1==0){
				flag=1;
			}else{
				flag=0;
				flag1=1;
			}
			if(flag == 0) printf("%d",c[i]);
		} 
		if(flag==1) printf("0");//都是零 
	} 

	return 0;
}

## 思考点:

输入会从在000+0的这种情况,所以存在计算出的c[i]全是0的情况,刚一开始想过用异或做,ans=ans^c[i]if(ans==0) printf(“0”)一部分可以过,但是对于数据123+123会出错,返回2460,因为异或的的中间结果会和操作数相等,导致出现零

本文链接: http://www.dtmao.cc/news_show_550007.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?