【洛谷题解】P1601 A+B Problem(高精)

时间:2024-02-19 10:08:28

题目链接:A+B Problem(高精) - 洛谷

题目难度:普及-

涉及知识点:高精度加法

题意:

分析:直接套用高精度加法模版即可

AC代码:

#include<bits/stdc++.h>
using namespace std;
int a[200],b[200],c[200];
int main()
{
    char n[200],m[200];
    cin>>n>>m;
    int lenn=strlen(n);//计算两整数位数
    int lenm=strlen(m);
    for(int i=1; i<=lenn; i++)
    {
        a[i]=n[lenn-i]-'0';//倒叙进a数组中,以便从末位相加
    }
    for(int i=1; i<=lenm; i++)
    {
        b[i]=m[lenm-i]-'0';
    }
    int lenc=1;
    int x=0;
    while(lenc<=lenn||lenc<=lenm)//只要未加完
    {
        c[lenc]=a[lenc]+b[lenc]+x;//将每位数字相加,存入c数组
        x=c[lenc]/10;//进位
        c[lenc]%=10;//留个位,再加进位
        lenc++;
    }
    c[lenc]=x;
    while(c[lenc]==0&&lenc>1)//删除前导0
    {
        lenc--;
    }
    for(int i=lenc; i>=1; i--)//输出结果
    {
        cout<<c[i];
    }
    cout<<endl;
    return 0;
}

总结:直接套用高精度加法模版即可