您的位置:首页 > 其它

九度OJ 1089 数字反转

2013-06-07 12:37 197 查看
题目链接: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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: