ACM中的A + B Problem II 怎么做?
发布网友
发布时间:2022-04-22 21:49
我来回答
共2个回答
热心网友
时间:2022-05-03 04:57
这题是大整数的加法,即高精度加法。
直接用数组模拟加法即可,
希望能够帮助到你
#include<stdio.h>
#include<string.h>
void main()
{
char a[1000],b[1000];
int T,i,j,la,lb,max;
scanf("%d",&T);
getchar();
for(i=1;i<=T;i++)
{
int c[1001]={0},a1[1000]={0},b1[1000]={0};
scanf("%s",a);
scanf("%s",b);
getchar();
la=strlen(a);
lb=strlen(b);
max=la;
if(lb>la)
max=lb;
for(j=1000-la;j<=999;j++)
a1[j]=a[j+la-1000]-48;
for(j=1000-lb;j<=999;j++)
b1[j]=b[j+lb-1000]-48;
for(j=999;j>=0;j--)
{
if(c[j+1]+a1[j]+b1[j]>9)
{
c[j+1]+=a1[j]+b1[j]-10;
c[j]++;
}
else
c[j+1]+=a1[j]+b1[j];
}
printf("Case %d:\n",i);
printf("%s + %s = ",a,b);
if(c[1000-max]!=0)
printf("%d",c[1000-max]);
for(j=1001-max;j<=1000;j++)
printf("%d",c[j]);
printf("\n");
if(i!=T)
printf("\n");
}
}
热心网友
时间:2022-05-03 06:15
哪个网站,你不说谁知道啊。最好直接把题目贴出来。