大数相加(超出long long范围的大数)

  • 代码中附加了使用文件操作的功能,去掉文件操作的注释就可以了,使用文件操作记得在同目录下创建一个add.in的文件,把需要相加的两个数写在里面,add.in创建方法是新建一个记事本,然后重命名为add.in,记得删掉文件名后面的.txt。
  • 在科学研究或者其他的统计中,很多时候会遇到非常大的数字,这时候就需要用到大数相加的方法来进行相加。
#include
#include
#include
using namespace std; 
int main(){
//	freopen("add.in","r",stdin);
//	freopen("add.out","w",stdout);
	int a[100],b[100],c[100],t = 0;
	char a1[100],b1[100];
	cin>>a1>>b1;
	int maxl = strlen(a1) > strlen(b1) ? strlen(a1) : strlen(b1);
	//把字符数组中的内容倒序存储到整形数组中
	for(int i = 0;i < strlen(a1);i++) a[i] = a1[strlen(a1) - i - 1] - '0';
	for(int i = 0;i < strlen(b1);i++) b[i] = b1[strlen(b1) - i - 1] - '0';
	
	int lenc = 0;
	
	while(lenc < maxl){
		c[lenc] = a[lenc] + b[lenc] + t; //t代表进位
		t = c[lenc] / 10;
		c[lenc] %= 10;
		lenc++;
	}
	if(t) c[lenc] = t;
	else lenc--;
	for(int i = 0; i <= lenc;i++) cout<<c[lenc - i];
//	fclose(stdin);
//	fclose(stdout);
	return 0;
}

你可能感兴趣的:(大数相加(超出long long范围的大数))