1002
2009-12-13 15:36
204 查看
大数相加
#include <iostream> using namespace std; int main() { char a[1000],b[1000],c[1000]; int n,Case = 1; cin>>n; while(n--) { cin>>a>>b; int i = strlen(a); int j = strlen(b); int jinwei = 0; int jj = --j; int ii = --i; if(i>j) { for(;j>-1;j--,i--) { c[i] =a[i] + b[j] + jinwei-'0'; if(c[i]>'9') { c[i] = c[i]-10; jinwei = 1; } else jinwei = 0; } for(i = ii-jj-1;i>-1;i--) { c[i] = a[i] +jinwei; if(c[i]>'9') { c[i] = c[i]-10; jinwei = 1; } else jinwei = 0; } cout<<"Case "<<Case<<":"<<endl; Case ++; for(i = 0;i<strlen(a);i++) cout<<a[i]; cout<<" + "; for(i = 0;i<strlen(b);i++) cout<<b[i]; cout<<" = "; if(jinwei == 1) cout<<"1"; for(i = 0;i<strlen(a);i++) cout<<c[i]; cout<<endl; if(n) cout<<endl; } else { for(;i>-1;i--,j--) { c[j] =a[i] + b[j] + jinwei-'0'; if(c[j]>'9') { c[j] = c[j]-10; jinwei = 1; } else jinwei = 0; } for(j = jj-ii-1;j>-1;j--) { c[j] = b[j] +jinwei; if(c[j]>'9') { c[j] = c[j]-10; jinwei = 1; } else jinwei = 0; } cout<<"Case "<<Case<<":"<<endl; Case++; for(i = 0;i<strlen(a);i++) cout<<a[i]; cout<<" + "; for(i = 0;i<strlen(b);i++) cout<<b[i]; cout<<" = "; if(jinwei == 1) cout<<"1"; for(i = 0;i<strlen(b);i++) cout<<c[i]; cout<<endl; if(n) cout<<endl; } } return 0; }
相关文章推荐
- HDU-2017 多校训练赛10-1002-Array Challenge
- BZOJ 1002: [FJOI2007]轮状病毒
- 1002. 写出这个数 (20)--PAT乙级
- [DP] POJ - 1002 487-3279
- HDU - 6195 cable cable cable (2017 ACM-ICPC 亚洲区 (沈阳赛区) 网络赛 1002)
- 1002. 射击游戏1
- 1002. 写出这个数 (20)
- [bzoj1002] [FJOI2007]轮状病毒
- PAT-乙级-1002 写出这个数
- 【2017 Multi-University Training Contest - Team 1 1002】Balala Power!
- 1002.Phone Numbers
- HDOJ 1002 A + B Problem II(大数)
- BZOJ1002(FJOI2007)[轮状病毒]--找规律+高精度
- LuoGu 1002 过河卒
- 1002. 写出这个数 (20)PAT乙级真题
- 51Nod 1002 数塔取数问题
- 1002. 写出这个数 (20)
- 算法期中1002. 合并二叉树
- 1002. 写出这个数
- 1002题大数的相加