OJA+B again

来源:互联网 发布:网络教育文凭样本 编辑:程序博客网 时间:2024/06/03 05:30

1018: A+B again

描述

题目描述:

谷学长有一个非常简单的问题给你,给你两个整数A和B,你的任务是计算A+B。

输入:

输入的第一行包含一个整数T(T<=20)表示测试实例的个数,然后2*T行,分别表示A和B两个正整数。注意整数非常大,那意味着你不能用32位整数来处理。你可以确定的是整数的长度不超过1000。

输出:

对于每一个样例,你应该输出两行,第一行是"Case #:",#表示第几个样例,第二行是一个等式"A+B=Sum",Sum表示A+B的结果。注意等式中有空格。

样例输入

2
1
2
112233445566778899
998877665544332211

样例输出

Case 1:
1 + 2 = 3
Case 2:

112233445566778899 + 998877665544332211 = 1111111111111111110


#include<cstdio>#include<cstring>#include<iostream>using namespace std;char a[1001],b[1001];void add(){char c[1001];memset(c,'0',1001);for(int i=0;i<strlen(a);i++){c[i]=a[strlen(a)-1-i];}memset(a,'0',1001);for(int i=0;i<strlen(b);i++){a[i]=b[strlen(b)-1-i];}for(int i=0;i<1000;i++){a[i]+=c[i]-'0';if(a[i]>'9'){a[i]=a[i]-10;a[i+1]=a[i+1]+1;}}}int main(){int t;cin>>t;for(int i=1;i<=t;i++){cin>>a>>b;printf("Case %d:\n",i);printf("%s + %s = ",a,b);add();int k;for(int i=1000;i>=0;i--)if(a[i]!='0'){k = i;break;}for(int i=k;i>=0;i--)printf("%c",a[i]);printf("\n");}return 0;}


原创粉丝点击