大整数加法

解题思路:
- 不需要考虑再创个字符串c来放答案,这样就要考虑如何将多出来的部分接到c上,很麻烦,可以直接加在a(长的字符串上)
- 写的时候一直考虑像199+9这种要连续进位的怎么办,其实只要将a,b两个字符串的值分开加就好了
解题代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
string a,b;
while(cin>>a>>b){
int s=a.size(),t=b.size();
if(s<t) {swap(a,b);swap(s,t);}//swap也适用于char数组
reverse(a.begin(),a.end());//只有反过来下面才可以用同一个i
reverse(b.begin(),b.end());
int cnt=0;
for(int i=0;i<s;i++){
int k=a[i]-'0'+cnt;//分开加就不用考虑如果超出b的范围怎么办
if(i<t) k+=b[i]-'0';//如果超出b的范围就不加b的了
a[i]=k%10+'0';
cnt=k/10;
}
if(cnt>0) a=a+"1";
reverse(a.begin(),a.end());
cout<<a<<endl;
}
return 0;
}