全部评论 1

  • #include <iostream>
    using namespace std;
    string s1,s2; //读入的两个字符串
    //a数组存入字符串s1, b数组存入字符串s2, c数组存入计算后的结果

    int a[10000],b[10000],c[10000]; //数据不够再扩容

    int i,len;

    int main()
    {
    //1.采用string读入高精度整数

    cin >> s1 >> s2;
    
    //2.将两个高精度整数逆序存入两个整  数数组中
    for (i = 0; i < s1.size();i++)
    {
        a[s1.size() -i -1] = s1[i] - '0';
    }
    for (i = 0; i < s2.size();i++)
    {
        b[s2.size() -i -1] = s2[i] - '0';
    }
    
    //3.从左向右,逐位求和,存入c数组中
    len = s1.size();
    if(s2.size() > len)
    {
        len = s2.size();
    }
    
    for (i = 0;i < len;i++)
    {
        c[i] = a[i] + b[i];
    }
    //从左向右,逐位进位
    for (i = 0;i < len;i++)
    {
        if (c[i] >= 10)
        {
            c[i+1] = c[i+1] + c[i]/10;
            c[i] = c[i] % 10;
        }    
    }
    //最后一位不是0的话,就需要进位即 len+1 
    if (c[len] != 0) len ++;
    //4.逆序输出结果
    for (i=len-1;i>=0;i--)
    {
        cout << c[i];
     } 
    
    return 0;
    

    }

    2024-07-12 来自 福建

    0
首页