hdu1002 A + B Problem II(大数题)
2014-12-15 23:15
337 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002
Total Submission(s): 230247 Accepted Submission(s): 44185
[align=left]Problem Description[/align]
I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.
[align=left]Input[/align]
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.
[align=left]Output[/align]
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.
[align=left]Sample Input[/align]
2
1 2
112233445566778899 998877665544332211
[align=left]Sample Output[/align]
Case 1:
1 + 2 = 3
Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110
题目大意:题意很容易理解,具体就不解释了,主要就是要解决大数的问题。
题目思路:如果会java的话,可以轻松AC。其他的小伙伴们只能用最笨的方法解决。我们用一个数字将数字倒过来存下,无论是乘法还是加法,这是最好的解决办法。
下面附上两个代码。
java代码。
A + B Problem II
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 230247 Accepted Submission(s): 44185
[align=left]Problem Description[/align]
I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.
[align=left]Input[/align]
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.
[align=left]Output[/align]
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.
[align=left]Sample Input[/align]
2
1 2
112233445566778899 998877665544332211
[align=left]Sample Output[/align]
Case 1:
1 + 2 = 3
Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110
题目大意:题意很容易理解,具体就不解释了,主要就是要解决大数的问题。
题目思路:如果会java的话,可以轻松AC。其他的小伙伴们只能用最笨的方法解决。我们用一个数字将数字倒过来存下,无论是乘法还是加法,这是最好的解决办法。
下面附上两个代码。
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int main () { char a[8000],b[8000]; int na[8000],nb[8000],sum[8000],pre,flag=1; int t; scanf("%d",&t); while (t--) { memset(sum,0,sizeof(sum)); memset(na,0,sizeof(na)); memset(nb,0,sizeof(nb)); scanf("%s%s",a,b); pre=0; int lena=strlen(a); int lenb=strlen(b); for (int i=0; i<lena; i++) na[lena-1-i]=a[i]-'0'; for (int j=0; j<lenb; j++) nb[lenb-1-j]=b[j]-'0'; int lenx=lena>lenb?lena:lenb; for (int k=0; k<lenx; k++) { sum[k]=na[k]+nb[k]+pre/10; pre=sum[k]; } while (pre>9) { sum[lenx]=pre/10%10; lenx++; pre/=10; } printf ("Case %d:\n",flag++); printf ("%s + %s = ",a,b); for (int i=lenx-1; i>=0; i--) { printf ("%d",sum[i]%10); } printf ("\n"); if (t) printf ("\n"); } return 0; }
java代码。
import java.util.*; import java.math.*; public class Main { public static void main(String[] args) { Scanner sc=new Scanner (System.in); int l=sc.nextInt(); for(int i=1;i<=l;i++){ if(i!=1) System.out.println(); BigInteger a,b; a=sc.nextBigInteger(); b=sc.nextBigInteger(); System.out.println("Case "+i+":"); System.out.println(a+" + "+b+" = "+a.add(b)); } } }
相关文章推荐
- HDU 1002 A + B Problem II(大数相加)
- HDU 1002 A + B Problem II 大数相加
- hdu 1002:A + B Problem II(大数问题)
- hdu 1002 A + B Problem II(大数模板)
- HDU 1002 A + B Problem II(大数加法,C,Java两个版本)
- HDU 1002--A + B Problem II【大数】
- 大数A + B Problem II-hdu-1002
- A + B Problem II 1002 hdu 大数模板
- hdu1002 A + B Problem II(大数题)
- 抓起根本(二)(hdu 4554 叛逆的小明 hdu 1002 A + B Problem II,数字的转化(反转),大数的加法......)
- hdu1002 A + B Problem II(大数加法一)模板
- HDU 1002 A + B Problem II 大数相加
- hdu 1002 A + B Problem II(大数模拟加法)
- HDU 1002 A + B Problem II 大数
- HDU 1002 A + B Problem II 【大数相加】(3.16)
- HDU 1002 A + B Problem II(两个大数相加)
- A + B Problem II(hdu1002,大数加法)
- HDU 1002 A + B Problem II 大数相加
- hdu - 1002 - A + B Problem II(Java大数)
- HDU 1002 A + B Problem II (大数加法)