计算两个大数求和,一般使用int数组存储,变量cnt记录长度,这里为了方便使用了string来简化。
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<cstring>
using namespace std;
string a,b;
int ans[1005];
void up(int now)
{
if(ans[now]>=10)
{
ans[now]%=10;
ans[now+1]++;
up(now+1);
}
}
int main(){
int T;
cin>>T;
for(int i=1;i<=T;i++)
{
if(i-1)cout<<endl;
cin>>a;
cin>>b;
// cout<<b<<endl;
memset(ans,0,sizeof(ans));
for(int i=0;i<a.size();i++)
{
ans[i]=((int)a[a.size()-1-i]-'0');
}
for(int i=0;i<b.size();i++)
{
ans[i]+=((int)b[b.size()-1-i]-'0');
up(i);
}
int digit=max(a.size(),b.size());
cout<<"Case "<<i<<":\n";
if(!ans[digit+1])
{
cout<<a<<" + "<<b<<" = ";
for(int i=digit-1;i>=0;i--)
cout<<ans[i];
cout<<endl;
}
else{
for(int i=digit;i>=0;i--)
cout<<ans[i];
cout<<endl;
}
}
return 0;
}