大数的加法 进位

/*
author:jz
date:2014 09 01
*/
/*
题目描述:
实现一个加法器,使其能够输出a+b的值。
输入:
输入包括两个数a和b,其中a和b的位数不超过1000位。
输出:
可能有多组测试数据,对于每组数据,
输出a+b的值。
样例输入:
2 6
10000000000000000000 10000000000000000000000000000000
样例输出:
8
10000000000010000000000000000000
来源:
2010年华中科技大学计算机研究生机试真题
答疑:
解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7921-1-1.html
*/

#include
using namespace  std;
#include
#include
#include 

void Bigdata_addition()
{
	stack st1;
	stack st2;
	stack res;
	string s1,s2;
	int flag;
	while(cin>>s1)
	{
		flag=0;//进位标志
		cin>>s2;
		//cout<=10)//进位标志
				 flag=1;
			else
				 flag=0;
			
				st1.pop();
				st2.pop();
			
			
		}
		while (!st1.empty())
		{
			res.push( (st1.top()+flag)%10 );
			if ( (st1.top()+flag)>=10)//进位标志
				flag=1;
			else
				flag=0;
			st1.pop();
		}
		while (!st2.empty())
		{
			res.push( (st2.top()+flag)%10);
			if ( (st2.top()+flag)>=10)//进位标志
				flag=1;
			else
				flag=0;
			st2.pop();
		}
		if (1==flag)
		{
			res.push(1);
		}
		while (!res.empty())
		{
			cout<

你可能感兴趣的:(大数的加法 进位)