题目分析:高精度的算法肯定会用到字符串,所以设char数组就可以了。
第一步:设两个char数组,求出两者长度的最大者(方便输出最后的值)。
第二步:设两个int数组,(为什么第一个不是int数组,可以自己编程一下试试)将第一步的两个char数组进行倒叙转换。
第三步:int数组两者相加,以最大的长度为限定条件,关于进位问题,看具体代码即可。
第四步:看数组两者相加进了一位,如果最高位的上一位的结果不为零,则输出时的最大长度++;
第五步:倒序输出即可。
#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
#include <cmath>
using namespace std;
int main ()
{
char a[100000]; //第一步
char b[100000];
cin >> a >> b;
int len1=strlen(a);
int len2=strlen(b);
int len=max(len1,len2);
int aa[100000]; // 第二步(你自己定义了int数组之后,会自动将其值设为0)
int bb[100000];
for (int i=0;i<len1;i++) aa[i]=a[len1-i-1]-'0';
for (int i=0;i<len2;i++) bb[i]=b[len2-1-i]-'0';
for (int i=0;i<len;i++) //第三步
{
aa[i]=aa[i]+bb[i];
if(aa[i]>=10)
{
aa[i]=aa[i]-10;
aa[i+1]++;
}
}
if(aa[len]!=0)。 //第四步
{
len++;
}
for (int i=len-1;i>=0;i--) //第五步
{
cout << aa[i];
}
cout << endl;
return 0;
}


京公网安备 11010502036488号