Life is short, so we need program

每日一题, 积累从点滴开始

  :: 首页 :: 博问 :: 闪存 :: :: 联系 :: :: 管理 ::

A + B Problem II

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 115102    Accepted Submission(s): 21803


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
 
 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int a[1001], b[1001];
 5 char charA[1001], charB[1001];
 6 int sum[1001];
 7 
 8 int main(){
 9     int n, i, j;
10     scanf("%d", &n);
11     for(i=1; i<=n; i++){
12         if(i!=1){
13             printf("\n");
14         }
15         memset(a, 0, sizeof(a));
16         memset(b, 0, sizeof(b));
17         memset(sum, 0, sizeof(sum));
18         printf("Case %d:\n", i);
19         scanf("%s %s", &charA, &charB);
20         printf("%s + %s = ", charA, charB);
21         int lenA = strlen(charA);
22         int lenB = strlen(charB);
23         int p ,q;
24         p=lenA;
25         q=lenB;
26         for(j=0; j<lenA; j++){
27             a[p-1] = charA[j]-'0';
28             p--;
29         }
30         for(j=0; j<lenB; j++){
31             b[q-1] = charB[j]-'0';
32             q--;
33         }
34 
35         for(j=0; j<1001; j++){
36             sum[j]+=a[j]+ b[j];
37             sum[j+1]=sum[j]/10;
38             sum[j]%=10;
39         }
40         
41         for(j=1001; j>=0; j--){
42               if(sum[j]!=0){
43                   break;
44               }
45         }    
46         int len = j;
47         
48         for(j=len; j>=0; j--){
49             printf("%d", sum[j]);
50         }
51         printf("\n");
52     }    
53     
54     return 0;
55 }

 

posted on 2012-06-12 19:57  CDU_ICPC  阅读(176)  评论(0编辑  收藏  举报