hdu--1002 大数相加 (连起来相加很容易,分开为啥错了?)
2011-06-03 18:37
302 查看
#include "stdio.h" #include "string.h" int main() { int lena,lenb,i,j,n,t,temp,k,num,count; int c[1002]={0}; int a[1002]={0},b[1002]={0}; char a1[1002],b1[1002]; scanf("%d",&num);count=1; while(num--) { scanf("%s %s",&a1,&b1); lena=strlen(a1); lenb=strlen(b1); if(lena<lenb) k=lenb; else k=lena; for(i=0;i<lena;i++) a[i]=a1[lena-i-1]-'0'; for(i=0;i<lenb;i++) b[i]=b1[lenb-i-1]-'0'; for(i=0;i<k;i++) { c[i]=a[i]+b[i]+c[i]; c[i+1]=c[i+1]+c[i]/10; c[i]=c[i]%10; } if(c[k]) k++; printf("Case %d:/n",count++); printf("%s + %s = ",a1,b1); for(i=k-1;i>=0;i--) printf("%d",c[i]); if(num>=1) printf("/n/n"); else printf("/n"); memset(c,0,sizeof(c)); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); /* for(i=0;i<lena;i++) a[i]=a1[i]-'0'; for(i=0;i<lenb;i++) b[i]=b1[i]-'0'; i=lena-1;j=lenb-1; t=0;temp=0;k=0; while(i>=0&&j>=0) { temp=a[i]+b[j]+t; c[k++]=temp%10; t=temp/10; i--;j--; } if(i>=0) { while(i>=0) { temp=a[i]+t; c[k++]=temp%10; t=temp/10; i--; } if(t>0) c[k]=t; else k--; } else { while(j>=0) { temp=a[j]+t; c[k++]=temp%10; t=temp/10; j--; } if(t>0) c[k]=t; else k--; } printf("Case %d:/n",count++); printf("%s + %s = ",a1,b1); for(i=k;i>=0;i--) printf("%d",c[i]); if(num>=1) printf("/n/n"); else printf("/n"); memset(c,0,sizeof(c)); memset(a,0,sizeof(a)); memset(b,0,sizeof(b));*/ } return 0; }
相关文章推荐
- hdu 1002 java 大数相加
- [ACM]hdu 1002 A + B Problem II (复习大数相加)
- HDU 1002 A + B Problem II 大数相加
- hdu1002 A + B Problem II(大数相加)
- hdu1002 水题,大数相加
- HDU 1002 A + B Problem II 大数相加
- HDU 1002 A + B Problem II 【大数相加】(3.16)
- hdu 1002 A + B Problem II(大数相加)
- hdu 1002 java 大数相加
- HDU1002 大数相加
- HDU-1002-大数相加
- HDU 1002 A + B Problem II 大数相加
- hdu_1002 大数相加----高精度问题
- hdu1002 a+bII 大数相加
- HDU1002 大数相加
- hdu 1002 大数相加
- hdu 1002 大数相加
- B - A + B Problem II HDU - 1002 (大数相加问题)
- 【每日一题(19)】A + B Problem II(大数相加) HDU - 1002
- hdu 1002 大数相加