九度OJ 1089 数字反转

题目链接:http://ac.jobdu.com/problem.php?pid=1089


题目分析:

使用队列存放每一位的数字,然后输出并计算得到反转数值,从而实现数字反转。


源代码:

 

#include<iostream>
#include<queue>
using namespace std;

int main()
{
	int n;
	cin>>n;
	int m = 1;
	while (m <= n)	//控制行数循环
	{
		int a,b;
		cin>>a>>b;
		int sum = 0,temp = 0;
		queue<int> a1,b1,sum1;
		sum = a + b;
		temp = sum;
		while (sum > 0)
		{
			sum1.push(sum % 10);
			sum = sum / 10;
		}
		while (a > 0)	//将a中每个数字入队列
		{
			a1.push(a % 10);
			a = a / 10;
		}
		while (b > 0)	//将b中每个数字入队列
		{
			b1.push(b % 10);
			b = b / 10;
		}
		a = 0, b =0, sum = 0;
		for (int k = 0; k < sum1.size(); k++)
		{
			sum = sum * 10 + sum1.front();
			sum1.pop();
		}
		for (int i = 0; i < a1.size(); i++)
		{
			a = a * 10 + a1.front();
			a1.pop();
		}
		for (int j = 0; j < b1.size(); j++)
		{
			b = b * 10 + b1.front();
			b1.pop();
		}
		if (sum == a + b)
		{
			cout<<temp<<endl;;
		}
		else
		{
			cout<<"NO"<<endl;
		}
		m ++;
	}
	return 0;
}


 

 

posted @ 2013-06-07 20:39  爱生活,爱编程  阅读(281)  评论(0编辑  收藏  举报