您的位置:首页 > 其它

Hdu 1002 A + B Problem II(大整数加法)

2016-07-20 06:28 453 查看
  求两个1000位的整数的和。#include<stdio.h>
#include<string.h>
char a[1001];
char b[1001];
char f[1001];
int main(){
int n;
int lenA,lenB;
int i,j,k;
int d,t=1;
int c=0;
int ct=1;
scanf("%d",&n);
while(t<=n){
k=0;
scanf("%s%s",a,b);
lenA = strlen(a);
lenB = strlen(b);
for(i=lenA-1,j=lenB-1;i>=0&&j>=0;i--,j--){
d=(a[i]-'0')+(b[j]-'0');
if(d+c>=10){
f[k++]=d-10+'0'+c;
d-=10;
c=1;
}else{
f[k++]=d+'0'+c;
c=0;
}
}
while(i>=0){
if(a[i]-'0'+c>=10){
f[k++]=a[i--]-'0'+c-10+'0';
c=1;
}
else{
f[k++]=a[i--]-'0'+c+'0';
c=0;
}
}
while(j>=0){
if(b[j]-'0'+c>=10){
f[k++]=b[j--]-'0'+c-10+'0';
c=1;
}
else{
f[k++]=b[j--]-'0'+c+'0';
c=0;
}
}
if(c==1){
f[k++]='1';
}
printf("Case %d:\n",ct++);
printf("%s + %s = ",a,b);
for(i=k-1;i>=0;i--){
printf("%c",f[i]);
}
printf("\n");
if(t<n){
printf("\n");
}
t++;
}
return 0;
}
  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息