大数加法

来源:互联网 发布:怪物猎人捏脸数据女库 编辑:程序博客网 时间:2024/06/06 11:45

本程序应用C++ STL中的容器stack、list实现,支持多组测试数据

#include <iostream>
#include <deque>
#include <stack>
#include <queue>
#include <string>
#include <list>
using namespace std;
int main ()
{
string a,b;
while(cin>>a>>b){
stack<int,list<int> > s1,s2,res;
int len_a=a.length(),len_b=b.length();
for(int i=0;i<len_a;i++){
s1.push(a.at(i)-'0');
}
for(int i=0;i<len_b;i++){
s2.push(b.at(i)-'0');
}
int len=min(len_a,len_b),f=0;
for(int i=0;i<len;i++){
f+=s1.top()+s2.top();
s1.pop();
s2.pop();
res.push(f%10);
f/=10;
}
while(!s1.empty()){
f+=s1.top();
s1.pop();
res.push(f%10);
f/=10;
}
while(!s2.empty()){
f+=s2.top();
s2.pop();
res.push(f%10);
f/=10;
}
while(f){
res.push(f%10);
f/=10;
}
while(!res.empty()){
printf("%d",res.top());
res.pop();
}
printf("\n");
}
return 0;
}