スレを勃てるまでもないC/C++の質問はここで 10
■ このスレッドは過去ログ倉庫に格納されています
0373デフォルトの名無しさん
2009/05/28(木) 19:05:24もっとシンプルに出来ますでしょうか
効率は意識していません
string add(string l,string r){
int carry=0;
stringstream ss;
if(l.size()>r.size()){swap(l,r);}
reverse(l.begin(),l.end());
reverse(r.begin(),r.end());
int i=0;
for(;i<l.size();++i){
unsigned int tmp=(l[i]-'0')+(r[i]-'0')+carry;
if(tmp/10){carry=1;}else{carry=0;}
tmp%=10;
ss<<tmp;
}
for(int j=i;j<r.size();++j){
unsigned int tmp=r[i]-'0'+carry;
if(tmp/10){carry=1;}else{carry=0;}
tmp%=10;
ss<<tmp;
}
if(carry){ss<<'1';}
string ret=ss.str();
reverse(ret.begin(),ret.end());
return ret;
}
■ このスレッドは過去ログ倉庫に格納されています