题意:大整数的加法。
代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s,re;
cin>>re;
int i,j,lre,ls,jin,tmp;
while(cin>>s&&s!="0")
{
lre=re.length();
ls=s.length();
jin=0;
if(lre<ls)
{
string tmp;
tmp=re;
re=s;
s=re;
}
for(i=lre-1,j=ls-1;j>=0 && i>=0;i--,j--)
{
tmp=re[i]+s[j]-'0'-'0'+jin;
re[i]=tmp%10+'0';
jin=tmp/10;
}
for(;i>=0;i--)
{
if(jin==0)
break;
tmp=re[i]+jin-'0';
re[i]=tmp%10+'0';
jin=tmp/10;
}
if(jin==1)
re='1'+re;//字符串的相加,解决了那个加出来的位数比原来大的情况
}
cout<<re<<endl;
return 0;
}
ps:第一次使用了string