C语言(18)A+B Problem II

来源:互联网 发布:淘宝上找货源 编辑:程序博客网 时间:2024/05/22 22:35
描述

I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.

A,B must be positive.

输入
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.
输出
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.
样例输入
21 2112233445566778899 998877665544332211
样例输出
Case 1:1 + 2 = 3Case 2:112233445566778899 + 998877665544332211 = 1111111111111111110
#include <stdio.h>#include <string.h>int main(void){int t, len1, len2, len3, i, j, max, min, flag;char str1[1000], str2[1000], str3[1000], str4[1000],re[1001];char temp,temp1;scanf("%d", &t);for(j=0; j<t; j++){bzero(str1, sizeof(str1));bzero(str2, sizeof(str2));bzero(str3, sizeof(str3));bzero(str4, sizeof(str4));bzero(re, sizeof(re));scanf("%s%s", str1, str2);len1=strlen(str1);len2=strlen(str2);//printf("str1:%s %s\n", str1, str2);strcpy(str3, str1);strcpy(str4, str2);/*字符串倒序*/for(i=0; i<len1/2; i++){temp=str1[i];str1[i]=str1[len1-1-i];str1[len1-1-i]=temp;}for(i=0; i<len2/2; i++){temp=str2[i];str2[i]=str2[len2-1-i];str2[len2-1-i]=temp;}if(len1>len2){max=len1;min=len2;}else{max=len2;min=len1;}/*运算*/flag=0;for(i=0; i<max; i++){if(i<min){temp1=str1[i]+str2[i]+flag-'0';}else{temp1=str1[i]+str2[i]+flag;}//printf(": %c %c\n", str1[i], str2[i]);if(temp1 > '9'){re[i]=temp1-10;flag=1;}else{re[i]=temp1;flag=0;}}if(flag==1){re[i]='1';re[i+1]='\0';}len3=strlen(re);for(i=0; i<len3/2; i++){temp=re[i];re[i]=re[len3-1-i];re[len3-1-i]=temp;}printf("Case %d:\n%s + %s = %s\n", j+1, str3, str4, re);}return 0;}

原创粉丝点击