为题如下:
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,sizeof(str1));
- memset(str2,sizeof(str2));
- memset(sum,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++,str2);
- for(j=k;j<N;j++)
- printf("%d",sum[j]);
- if(i>=1) printf("\n\n");
- else printf("\n");
- }
- return 0;
- }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。