#include<bits/stdc++.h>
using namespace std;
const int MAXN=100000000;
int A[MAXN],B[MAXN],C[MAXN],Ans[MAXN],Len_A,Len_B,Len_Ans;
void Read(int *a,int &Len){
string cur;
cin>>cur;
Len=cur.length();
for(int i=0;i<Len;i++) A[i]=cur[i]-48;
reverse(A,A+Len);
}
int main(){
Read(A,Len_A);
Read(B,Len_B);
Len_Ans=max(Len_A,Len_B);
for(int i=0;i<Len_Ans;i++)
{
Ans[i]=A[i]+B[i]+C[i];
if(Ans[i]>9) C[i+1]=Ans[i]/10,Ans[i]-=10;
}
while(Ans[Len_Ans]>0) Len_Ans++;
for(int i=Len_Ans-1;i>=0;i--)
cout<<Ans[i];
return 0;
}
上面是书上的,20分
下面是普通方法,40分
#include<bits/stdc++.h>
using namespace std;
const int MAXN=100000000;
int a,b;
int main(){
cin>>a>>b;
cout<<a+b;
}
搞到最后书上代码还不如最简单的方法???