#include <iostream>
using namespace std;
//大数加法
int main()
{
char n1[100] = {'\0'};//假设大数长度不超过100;
char n2[100] = {'\0'};
int flag[101] = {0};//进位标志
int result[101] = {0};//结果
int count;
cin >> n1 >> n2;
strrev(x1);
strrev(x2);
int len1 = strlen(x1);
int len2 = strlen(x2);
int lenmax = len1*(len1>=len2) + len2*(len1<len2);
int num1[100] = {0};
int num2[100] = {0};
for(int i = 0; i < len1; i++)
{
num1[i] = n1[i] - '0';
}
for(int i = 0; i < len2; i++)
{
num2[i] = n2[i] - '0';
}
for(int i = 0; i < lenmax; i++)
{
flag[i+1] = (num1[i] + num2[i] + flag[i])/10;
result[i] = (num1[i] + num2[i] + flag[i])%10;
}
result[lenmax] = flag[lenmax]; //最高位只取决于进位符
if(result[lenmax] == 0)
{
count = lenmax - 1;
}
else
count = lenmax;
for(; count >=0; count--)
{
cout << result[count];
}
cout << endl;
return 0;
}
大数加法求和(C++)
最新推荐文章于 2024-06-23 23:07:58 发布