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