65,187
社区成员




]#include "iostream"
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
int main(){
int T,i;
string str1,str2;//用来接收两个大数
vector<int> ivec;//用来存放最终结果
size_t size1,size2,sizei1=0,sizei2=0;
i=1;
cin>>T;
for(;i<=T;i++){
ivec.clear();
str1.clear();
str2.clear();
cin>>str1>>str2;
string str1x=str1;
string str2x= str2;
size1=str1.size()-1;
size2=str2.size()-1;
int carry =0;//carry表示进位,我没有这个抽象,所以做不出题
reverse(str1.begin(),str1.end()); //倒序
reverse(str2.begin(),str2.end()); //倒序
//数组模拟加法
sizei1=0,sizei2=0;
while(sizei1 <= size1 && sizei2 <= size2){
int temp;
temp = (str1.at(sizei1) - '0' + str2.at(sizei2) - '0' + carry)%10;
carry = (str1.at(sizei1) - '0' + str2.at(sizei2) - '0' + carry)/10;
ivec.push_back(temp);
++sizei1;
++sizei2;
}
while(sizei2 <= size2){
int temp;
temp = (str2.at(sizei1) - '0' + carry)%10;
carry = (str2.at(sizei1) -'0' +carry)/10;
ivec.push_back(temp);
++sizei2;
}
while(sizei1 <= size1){
int temp;
temp = (str1.at(sizei1) - '0' + carry)%10;
carry = (str1.at(sizei1) -'0' + carry)/10;
ivec.push_back(temp);
++sizei1;
}
if(carry)
ivec.push_back(carry);
if(i != 1)
cout<<endl;
cout<<"Case "<<i<<":"<<endl;
cout<<str1x<<" + "<<str2x<<" = ";
for(int t=ivec.size()-1;t >=0 ;t--){
cout<<ivec.at(t);}
cout<<endl;
}
return 0;
}