AcWing 791. 【算法基础课】高精度加法
原题链接
简单
作者:
长夜未央
,
2023-05-03 20:21:53
,
所有人可见
,
阅读 212
算法基础课学习题解
分析:
用数组来模拟非常大的整数,这意味着可以用数组的每一位记录那个数字上的每一位,也就是说,用 $n$ 位数组来记录 $n$ 位数字
相当于竖式加法
可以看到,必须从低位到高位处理进位,否则会发生顺序上的错误,可以从低位到高位同时进行
C++ 代码如下
#include<bits/stdc++.h>
using namespace std;
int A[100000],B[100000],C[100000];
int main()
{
string a,b;
cin>>a>>b;
int len=max(a.size(),b.size());
for(int i=a.size()-1,j=1;i>=0;i--,j++)A[j]=a[i]-'0';
for(int i=b.size()-1,j=1;i>=0;i--,j++)B[j]=b[i]-'0';
for(int i=1;i<=len;i++){
C[i]+=A[i]+B[i];
C[i+1]=C[i]/10;
C[i]%=10;
}
if(C[len+1])len++;
for(int i=len;i>=1;i--)cout<<C[i];
return 0;
}