爲題如下:
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
解體代碼如下,實現很簡單,這裏就不說明實現過程
- /**********************************************
- > File Name: 1002.c
- > Author: sea
- > Mail: [email protected]
- > Created Time: Mon 06 May 2013 02:01:19 PM CST
- **********************************************/
- #include<stdio.h>
- #include<string.h>
- #define N 1101
- int main() {
- char str1[N],str2[N];
- int sum[N+1],i,j,m,n,t,s1,s2,k,flag=1;
- scanf("%d",&i);
- while(i--) {
- k=N-1;
- memset(str1,0,sizeof(str1));
- memset(str2,0,sizeof(str2));
- memset(sum,0,sizeof(sum));
- scanf("%s %s",str1,str2);
- m=strlen(str1)-1;
- n=strlen(str2)-1;
- if(m>n) t=m;
- else t=n;
- for(j=0;j<=t;j++,m--,n--,k--) {
- if(m<0) s1=0;
- else s1=str1[m]-48;
- if(n<0) s2=0;
- else s2=str2[n]-48;
- if(sum[k]+s1+s2>=10)
- sum[k-1]+=1;
- sum[k]=(sum[k]+s1+s2)%10;
- }
- sum[k]>0?k:k++;
- printf("Case %d:\n%s + %s = ",flag++,str1,str2);
- for(j=k;j<N;j++)
- printf("%d",sum[j]);
- if(i>=1) printf("\n\n");
- else printf("\n");
- }
- return 0;
- }