大数加法算法

把输入的数用字符的形式存储,用调用函数转化成数字字型,再进做加法运算

注意:

1>进位

2>和的数组要比两数的范围大些


很简单的,不说了直接附上代码如下:

#include<iostream>
#include<cstring>
using namespace std;
int ans[10003];
void zhuan(char *a,int *n)
{
	int len=strlen(a);
	for(int i=0;i<len;i++){
		n[len-i]=a[i]-'0';
	}
}
void jia(int *n,int *m)
{
	for(int i=1;i<1000;i++){
		ans[i]=n[i]+m[i];
		if(ans[i]>9){
			ans[i]-=10;
			n[i+1]++;
		}
	}
}
void print(int *a)
{
	int i=1000;
	for(;i>1;i--){
		if(a[i]){
			for(;i>1;i--){
				cout<<a[i];
			}
		}
	}
	cout<<a[1]<<endl;
}
int main()
{
	char a[1000],b[1000];
	int n[1000],m[1000];
	while(cin>>a>>b){
		memset(n,0,sizeof(n));
		memset(m,0,sizeof(m));
		memset(ans,0,sizeof(ans));
		zhuan(a,n);
		zhuan(b,m);
		jia(n,m);
		print(ans);
	}
	return 0;
}

你可能感兴趣的:(算法,大数加法)