//高精度加法
#include<cstdio>
#include<cstring>
char a1[205],b1[205];
int a[205],b[205],c[205];
//两百位计算
int main()
{
int i,lena,lenb,lenc,x;
//x用来处理进位
fgets(a1,205,stdin);
fgets(b1,205,stdin);
lena=strlen(a1)-1;
lenb=strlen(b1)-1;
//取长度
for(i=0;i<lena;i++)
a[lena-i]=a1[i]-48;
for(i=0;i<lenb;i++)
b[lenb-i]=b1[i]-48;
//逆序存放至整数数组
lenc=1;
x=0;
while(lenc<=lena||lenc<=lenb)
{
c[lenc]=a[lenc]+b[lenc]+x;
x=c[lenc]/10;
c[lenc]%=10;
lenc++;
}
//进位
c[lenc]=x;
//最高进位
while(lenc>1&&c[lenc]==0)
lenc--;
//删除前导0
for(i=lenc;i>=1;i--)
printf("%d",c[i]);
}
高精度的加法(c++)
最新推荐文章于 2023-04-16 10:22:39 发布