(HDU 1002)A + B Problem II
2016-05-04 15:11
429 查看
Problem Description
I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.
Input
The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.
Output
For each test case, you should output two lines. The first line is “Case #:”, # means the number of the test case. The second line is the an equation “A + B = Sum”, Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.
Sample Input
2
1 2
112233445566778899 998877665544332211
Sample Output
Case 1:
1 + 2 = 3
Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110
I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.
Input
The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.
Output
For each test case, you should output two lines. The first line is “Case #:”, # means the number of the test case. The second line is the an equation “A + B = Sum”, Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.
Sample Input
2
1 2
112233445566778899 998877665544332211
Sample Output
Case 1:
1 + 2 = 3
Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110
#include<iostream> #include<cstdio> #include<algorithm> #include <cmath> #include <cstring> #include <string> #include<sstream> #include<set> using namespace std; int main() { int T,k=1; cin>>T; for(int p=1;p<=T;p++) { int x,y,num; char a[1005],b[1005]; int c[1005],f=0; memset(c,0,sizeof(c)); scanf("%s %s",a,b); x=strlen(a);y=strlen(b); printf("Case %d:\n%s + %s = ",k++,a,b); num=0;x--;y--; while(x>=0&&y>=0) { if(c[num]+a[x]-48+b[y]-48<10) {c[num]+=a[x]-48+b[y]-48;} else {c[num]=c[num]+(a[x]-48+b[y]-48)-10;c[num+1]++;} num++; x--; y--; } if(x>=0) { for(int t=x;t>=0;t--) { if(c[num]+a[t]-48<10) {c[num]+=a[t]-48;} else {c[num]=(c[num]+a[t]-48)-10;c[num+1]++;} num++; } } else if(k>=0) { for(int t=y;t>=0;t--) { if(c[num]+b[t]-48<10) {c[num]+=b[t]-48;} else {c[num]=(c[num]+b[t]-48)-10;c[num+1]++;} num++; } } else if(c[num]!=0) num++; for(int i=num;i>=0;i--) { if(c[i]==0&&f==0) continue; else { f=1; printf("%d",c[i]); } } printf("\n"); if(T!=p) printf("\n"); } return 0; }
相关文章推荐
- MyBatis的动态SQL详解
- Eclipse使用技巧 快捷键
- 轻松记住大端小端的含义(附对大端和小端的解释)
- HttpClient——Get,Post
- IP地址正则表达式
- celebA数据库解析特征文件
- AngularJS(四)——模块
- 修改wireshark协议解析规则
- 原型模式
- HDFS 文件操作基础命令
- linux bg和fg命令
- xdebug
- 第四课输入时的细节处理——C#计算器编程教学
- strace追踪mysql执行语句
- Android的AlertDialog详解
- 第三届山东ACM省赛 An interesting game
- IP协议包中的TTL(Time-To-Live)
- Java IO使用总结
- javaweb学习总结(十一)——使用Cookie进行会话管理
- 前50名欠款人流血的国有银行