A + B Problem II
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 258229 Accepted Submission(s): 49919
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
Author
Ignatius.L
//惭愧啊;以前的代码是错的 ;现在修改一下。注意: 字符串以 '\0' 结尾 ;
1 #include <stdio.h> 2 #include <string.h> 3 char a[1010], b[1010], c[1010] ; 4 int main() 5 { 6 7 int i, j, k, n ; 8 scanf("%d", &n) ; 9 int total = 0 ; 10 while(n--) 11 { 12 memset(c, '\0', sizeof(c)) ; 13 scanf("%s %s", a, b) ; 14 int len = strlen(a) ; 15 int nel = strlen(b) ; 16 if(len > nel) 17 { 18 for(k = 0, i = len-1, j = nel-1; i >= 0; j--, i--) 19 { 20 if(j >= 0) 21 c[k++] = a[i] + b[j] - '0' ; 22 else 23 c[k++] = a[i] ; 24 } 25 } 26 else 27 { 28 for(k = 0, i = len - 1, j = nel-1; j >= 0; j--, i--) 29 { 30 if(i >= 0) 31 c[k++] = a[i] + b[j] - '0' ; 32 else 33 c[k++] = b[j] ; 34 } 35 } 36 for(i = 0; i < k; i++) 37 { 38 if(c[i] > '9' && i < k-1) 39 { 40 c[i] -= 10 ; 41 c[i+1] += 1 ; 42 } 43 if(i == k-1 && c[i] > '9') 44 { 45 c[i] -= 10 ; 46 c[k++] = '1' ; 47 } 48 } 49 50 // puts(c) ; 51 strrev(c) ; 52 // puts(c) ; 53 54 ++total ; 55 printf("Case %d:\n", total) ; 56 printf("%s + %s = %s\n",a, b, c) ; 57 if(n != 0) 58 printf("\n") ; 59 //printf("%d\n", n) ; 60 } 61 return 0 ; 62 }