0
点赞
收藏
分享

微信扫一扫

大数——大数相加(hdu1002)


题目链接:

​​http://acm.hdu.edu.cn/showproblem.php?pid=1002​​


题目描述:ACM入门的第一题,两个超出整型变量范围的整数进行相加运算。

一、因为整型装不下,所以需要通过字符串来存放。

二、加法运算是从个位(末端)开始,并且涉及到进位。


#include<stdio.h>
#include<string.h>
char a[1000],b[1000];
int main()
{ int x,y,i,j,n,e,s,k;
scanf("%d",&n);
k=1;
while(n--)
{
int c[1000]={0},d[1000]={0};
//为了更好的查看,我们重新申请两个数组c,d作为a和b的倒置字符串
scanf("%s%s",a,b);
x=strlen(a);
y=strlen(b);
for(i=0;i<x;i++)
c[i]=a[x-1-i]-48;
for(i=0;i<y;i++)
d[i]=b[y-1-i]-48;
e=0; //e为进位
for(i=0;i<1000;i++)
{ s=(c[i]+d[i]+e);
c[i]=s%10;
e=s/10;
}
printf("Case %d:\n%s + %s = ",k++,a,b);
for( i=1000-1;i>=0;i--)
if(c[i])break;
for(j=i;j>=0;j--)
printf("%d",c[j]);
printf("\n");
if(n!=0)
printf("\n");
}

}






举报

相关推荐

0 条评论