#include <stdio.h>
#include <string.h>
#include <memory.h>
int flag = 0 , cnt = 1;
int casenum,buf,res,bit,aLen,bLen;
char a[1001],b[1001],answer[1001];
int main()
{
register int i,j;
scanf("%d", &casenum);
while (casenum--)
{
getchar();
scanf("%s %s", a,b);
aLen = strlen(a);
bLen = strlen(b);
bit = aLen > bLen? aLen : bLen;
memset(answer,0,sizeof(answer));
for (i=0; i<aLen; ++i)
answer[i] = a[aLen-i-1] - '0';
for (i=0; i<bLen; ++i)
answer[i] += b[bLen-i-1] - '0';
for (i=0; i<=bit; ++i)
{
if (answer[i] > 9)
{
answer[i+1] += answer[i] / 10;
answer[i] %= 10;
}
}
if (flag)
{
printf("\n");
}
flag = 1;
printf("Case %d:\n",cnt++);
for (i=0; i<aLen; ++i)
{
printf("%c", a[i]);
}
printf(" + ");
for (i=0; i<bLen; ++i)
{
printf("%c", b[i]);
}
printf(" = ");
bit = answer[bit]? bit : bit-1;
for (i=bit; i>=0; --i)
{
printf("%c",answer[i]+'0');
}
printf("\n");
}
return 0;
}
旧代码 - 高精度加法
最新推荐文章于 2025-08-05 01:05:03 发布