HDU 1002 A + B Problem II
2016-04-28 15:32
295 查看
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
题解:
由于本题的数据规模太大,所以用一般的数据类型,不能储存。需要用字符串来模拟.
当然如果你学的JAVA就可以直接大数过了,上面说的就可以当没看到。
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<stdio.h> #include<string.h> int main() { char a[1000],b[1000],c[1001]; int i,j=1,p=0,n,n1,n2; scanf("%d",&n); while(n) { scanf("%s %s",a,b); printf("Case %d:\n",j); printf("%s + %s = ",a,b); n1=strlen(a)-1; n2=strlen(b)-1; for(i=0;n1>=0||n2>=0;i++,n1--,n2--) { if(n1>=0&&n2>=0){c[i]=a[n1]+b[n2]-'0'+p;} if(n1>=0&&n2<0){c[i]=a[n1]+p;} if(n1<0&&n2>=0){c[i]=b[n2]+p;} p=0; if(c[i]>'9'){c[i]=c[i]-10;p=1;} } if(p==1){printf("%d",p);} while(i--) {printf("%c",c[i]);} j++; if(n!=1){printf("\n\n");} else {printf("\n");} n--; } }
当然如果你学的JAVA就可以直接大数过了,上面说的就可以当没看到。
相关文章推荐
- Windows Server 2008 R2上部署ASP.NET MVC3.0应用网站程序
- BZOJ3998: [TJOI2015]弦论
- Oracle 游标使用全解
- Android M(6.0) 权限解决方案
- JS实现控件跟随鼠标移动
- OGG-01296 Oracle GoldenGate Delivery for Oracle OGG-01668 Oracle GoldenGate Delivery for Oracle
- 机器学习中的算法(1)-决策树模型组合之随机森林与GBDT
- Lua 中的string库(字符串函数库)总结
- MVC模式中业务抽离的方法
- 设计模式笔记:命令模式
- C# 正则表达式
- Hibernate使用数据库连接池
- Keil-MDK查看代码量,RAM时候用情况Code;RO-data;RW-data;ZI-data的分析
- viewController生命周期
- objc利用block实现链式编程方法
- GBDT(MART) 迭代决策树入门教程 | 简介
- Linux read命令
- Integer 装箱拆箱 比较
- nodejs less 及时编译
- mysql主从配置