九度OJ—题目1089:数字反转

题目描述:

    12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转。

输入:

    第一行一个正整数表示测试数据的个数n。
    只有n行,每行两个正整数a和b(0<a,b<=10000)。

输出:

    如果满足题目的要求输出a+b的值,否则输出NO。

样例输入:
2
12 34
99 1
样例输出:
46
NO
来源:
2005年上海交通大学计算机研究生机试真题
答疑:
解题遇到问题?分享解题心得?讨论本题请访问: http://t.jobdu.com/thread-7812-1-1.html

#include <iostream>   
using namespace std; 
 
int zhuan(int number)   
{    
    int n = 0;//余数.  
    int m = number; 
    while(m != 0)   
    {   
        n = n*10 + m %10;  //number的最低位变为n的最高位 
        m  = m /10;   
    }   
   
    return n;  
}
 
int main()
{
    int n;
    int i;
    int x,y,sum;
 
    while(cin>>n)
    {
        for(i=0;i<n;i++)
        {
            cin>>x>>y;
            sum=x+y;
            if(zhuan(sum)==(zhuan(x)+zhuan(y)))
                cout<<sum<<endl;
            else
                cout<<"NO"<<endl;
        }
    }
 
    return 0;
}
/**************************************************************
    Problem: 1089
    User: vhreal
    Language: C++
    Result: Accepted
    Time:0 ms
    Memory:1520 kb
****************************************************************/


你可能感兴趣的:(数字反转,九度OJ,题目1089)