HDU 1002 A+B(大数)
2009-08-07 13:10
288 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1002
解题思路:没什么特殊思路,就是大数相加,用数组做。
解题思路:没什么特殊思路,就是大数相加,用数组做。
#include <stdio.h> #include <string.h> #define Size 1001 char a[Size]; char b[Size]; int res[Size]; int main() { int NumOfTest; int alen,blen,i,reslen,len,j; int count; int up; while (scanf("%d",&NumOfTest)!=EOF) { count=1; for (i=0;i<NumOfTest;i++) { memset(res,0,sizeof(res)); scanf("%s%s",a,b); up = 0; alen = strlen(a); blen = strlen(b); reslen = 0; len = (alen>blen?alen:blen)+1; alen-=1; blen-=1; while (len--) { if(alen!=-1&&blen!=-1) { res[reslen] = a[alen]-'0'+b[blen]-'0'+up; alen--;blen--;reslen++; } else if(alen==-1&&blen!=-1) { res[reslen] = b[blen]-'0'+up; reslen++;blen--; } else if(alen!=-1&&blen==-1) { res[reslen] = a[alen]-'0'+up; reslen++;alen--; } if (res[reslen-1]>9) { res[reslen-1]=res[reslen-1]%10; up=1; } else up = 0; if (alen==-1&&blen==-1&&up == 1) { res[reslen] = 1; up=0; reslen++; break; } } printf("Case %d:/n",count); printf("%s + %s = ",a,b); if(res[reslen-1]!=0) printf("%d",res[reslen-1]); for(j=reslen-2;j>=0;j--) printf("%d",res[j]); if (i!=NumOfTest-1) printf("/n"); printf("/n"); count++; } } return 0; }
相关文章推荐
- HDU1002大数加法
- [ACM]hdu 1002 A + B Problem II (复习大数相加)
- HDU 1002 A + B Problem II 【大数相加】(3.16)
- HDU 1002大数加法
- HDU1002 大数相加
- Hdu1002 大数加法
- hdu1002,大数加法,朴素版
- hdu1002 求大数和
- HDU 1002 A + B Problem II (大数加法)
- hdu 1002 A + B Problem II(大数)
- hdu--1002 大数相加 (连起来相加很容易,分开为啥错了?)
- HDU1002大数相加问题
- HDU-1002-大数加法
- HDU-1002 A + B Problem II Java大数
- hdu 1002 A + B Problem II 大数相加
- A + B Problem II 1002 hdu 大数模板
- hdu1002大数相加
- hdu 1002 A + B Problem II(大数相加)
- HDU 1002 - A + B Problem II (大数相加)
- hdu1002 A + B Problem II(大数加法一)模板