A+B大数问题

写在前面:这里是小王成长日志,一名在校大学生,想在学习之余将自己的学习笔记分享出来,记录自己的成长轨迹,帮助可能需要的人。欢迎关注与留言。

A+B大数问题_第1张图片
题目描述
高精度加法,相当于a+b problem,不用考虑负数.

输入格式
分两行输入。a,b<=10^{500}a,b<=10
500

输出格式
输出只有一行,代表a+ba+b的值

输入输出样例
输入

1
1

输出

2

题解:

#include 
#include  

using namespace std;

int a[1000],b[1000],c[1000];//a,b存储输入的大数,c存储结果 


int myplus(string num1,string num2);
int main(){
	string num1,num2;
	cin>>num1>>num2; 
	int lenc = myplus(num1,num2);
	if(lenc==0)
		cout<<0; 
	for(int i=lenc-1;i>=0;i--)
		cout<<c[i]; 
	return 0; 
} 

//返回结果的长度 
int myplus(string num1,string num2){
	int i,j; 
	int len1=num1.length(),len2=num2.length();
	int max=(len1>len2?len1:len2)+1;//两数相加结果长度不超度较大的数的长度加1 
	
	//翻转保存 
	for(i=0,j=len1-1;j>=0;i++,j--)
		a[i]=num1[j]-'0';
	for(i=0,j=len2-1;j>=0;i++,j--)
		b[i]=num2[j]-'0';
		
	//模拟加法运算
	for(i=0;i<max;i++){
		c[i]+=a[i]+b[i];
		if(c[i]>=10){//模拟进位 
			c[i]%=10;
			c[i+1]++; 
		} 
	} 
	
	//去除高位多余的0
	i=max-1;
	while(c[i]==0&&i>=0)
		i--;
	return i+1;
}

都看到这里了,各位哥哥姐姐叔叔阿姨给小王点个赞 关个注 留个言吧,和小王一起成长吧,你们的关注是对我最大的支持。
有事没事进来看看吧 : 小王的博客目录索引
C语言专栏看这 : C/C++专栏


如果以上内容有任何不准确或遗漏之处,或者你有更好的意见,就在下面留个言让我知道吧-我会尽我所能来回答。

你可能感兴趣的:(OJ,#,蓝桥,高精度,大数)