#include <bits/stdc++.h>
using namespace std;
class Super_Int {
public:
string Var;
Super_Int operator + (Super_Int Var2_a){
string Var2,Var1,Ans;
Super_Int AnsT;
Var1 = Var;
Var2 = Var2_a.Var;
vector<char> A,B,C;
C.push_back(0);
if(Var2.size() < Var.size()){
swap(Var1,Var2);
}
int lengthOfVar1 = (int)Var1.size(),lengthOfVar2 = (int)Var2.size();
if(lengthOfVar1 < 2 && lengthOfVar2 < 2){
AnsT.Var=Var1[0]+Var2[0]-'0';
if(AnsT.Var[0] >= 10){
AnsT.Var += AnsT.Var[0] - 10;
AnsT.Var[0] = '1';
}
return AnsT;
}
for(int i=lengthOfVar2-1;i>-1;i--){
B.push_back(Var2[i]-'0');
}
for(int i=lengthOfVar1-1;i>-1;i--){
A.push_back(Var1[i]-'0');
}
//cout << A.size() << " ";
//for(int i=0;i<(int)A.size();i++){
// cout << (int)A[i] << " ";
//}
//cout << endl << B.size() << " ";
//for(int i=0;i<(int)B.size();i++){
// cout << (int)B[i] << " ";
//}
//Do it;
for(int i=0;i<lengthOfVar2;i++){
C.push_back(A[i]+B[i]);
if(C[i] >= 10){
C[i] -= 10;
C[i-1] ++;
}
//cout << (int)C[i] << " " << (int)C[i+1] << " ";
}
//End Do it;
//cout << flag << " ";
for(int i=lengthOfVar2-1;i>-1;i--){
Ans += C[i+1]+'0';
}
AnsT.Var = Ans;
return AnsT;
}
void Input(){
cin >> Var;
}
void Output(){
cout << Var;
}
};
int main(){
Super_Int a,b,c;
a.Input();b.Input();
c = a + b;
c.Output();
return 0;
}
求调 pls
对于这段代码的 HACK 数据:
输入
100000 12
正确输出
100012
我的结果
1i1012