题目分析:高精度的算法肯定会用到字符串,所以设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;
}