A + B Problem II
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 48 Accepted Submission(s) : 19
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
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 Deal(int num) 6 { 7 int sign; 8 if(num>=10&&num<20) sign=1; 9 else if(num>=20)sign=2; 10 else sign=0; 11 return sign; 12 } 13 14 int main() 15 { 16 int T,t,LenA,LenB,i,j,LenC,sign; 17 char a[1010],b[1010],c[1000]; 18 scanf("%d",&T); 19 t=1; 20 while(T--) 21 { 22 scanf("%s%s",a,b); 23 LenA=strlen(a);LenB=strlen(b); 24 for(i=LenA-1,j=LenB-1,LenC=0,sign=0;;i--,j--) 25 { 26 if(i==-1||j==-1)break; 27 c[LenC++]=((a[i]-'0')+(b[j]-'0')+sign)%10; 28 sign=Deal((a[i]-'0')+(b[j]-'0')+sign); 29 } 30 if(i==-1) 31 for(j;;j--){if(j==-1)break;c[LenC++]=((b[j]-'0')+sign)%10;sign=Deal((b[j]-'0')+sign);} 32 else 33 for(i;;i--){if(i==-1)break;c[LenC++]=((a[i]-'0')+sign)%10;sign=Deal((a[i]-'0')+sign);} 34 if(sign!=0)c[LenC++]=sign; 35 printf("Case %d: ",t++); 36 printf("%s + %s = ",a,b); 37 for(LenC-=1;LenC>=0;LenC--) 38 printf("%d",c[LenC]); 39 putchar(' '); 40 if(T!=0) 41 putchar(' '); 42 } 43 }