A+B Problem II
时间限制:
3000
ms
|
内存限制:
65535
KB
难度:
3
-
描述
-
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, eachline consists of two positive integers, A and B. Notice that theintegers are very large, that means you should not process them byusing 32-bit integer. You may assume the length of each integerwill 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 isthe an equation "A + B = Sum", Sum means the result of A + B. Notethere are some spaces int the equation. 样例输入
-
2 1 2 112233445566778899 998877665544332211
样例输出
-
Case 1: 1 + 2 = 3 Case 2: 112233445566778899 + 998877665544332211 = 1111111111111111110
来源
- 经典题目
- 我的代码:
-
#include
#include
#include
using namespace std;
void sum(char str1[],char str2[])
{
int ch[1001]={0};
int len_a=strlen(str1);
int len_b=strlen(str2);
int i=len_a-1;
int j=len_b-1;
int k=0;
int c=0;
while(i>=0||j>=0)
{
if(i<0)
{
ch[k]=str2[j]-'0'+c;
}
else if(j<0)
{
ch[k]=str1[i]-'0'+c;
}
else
{
ch[k]=str1[i]-'0'+str2[j]-'0'+c;
}
c=ch[k]/10;
ch[k]=ch[k];
i--;j--;k++;
}
if(c!=0)
ch[k]=c;
if(ch[k]!=0) cout<<ch[k];
for(i=k-1;i>=0;i--)
{
cout<<ch[i];
}
cout<<endl;
}
int main()
{
int t;
//ifstream cin("test.txt");
cin>>t;
int count=0;
char str1[1001],str2[1001];
while(t--)
{
count++;
cin>>str1>>str2;
cout<<"Case"<<count<<":"<<endl;
cout<<str1<<" +"<<str2<<" = ";
sum(str1,str2);
}
return 0;
}