九度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;

}


 

 

你可能感兴趣的:(数字)