#9 回文数

56 阅读1分钟

官方题解

#include <iostream>
#include <string>


using namespace std;

int main()
{
    int x;
    while (cin >> x)
    {
        if(x < 0 || (x > 0 && x%10 == 0))  //先排除负数、大于0且个位为0的数
            cout << "Fasle" << endl;
        else if(x == 0)
            cout << "Right" << endl;
        else{//反转后半部分的思路
            int new_num = 0;
            int temp = 0;
            int orgin_num = x;  
            while (x > new_num ) //1.判断回文的条件:原始数字小于或等于反转后的数字!!!
            {
                new_num *= 10;
                temp = x%10;
                new_num += temp;
                x /= 10;
            }
            if(x == new_num || x == new_num/10)
                    cout << "Right" << endl;
            else
                cout << "False" << endl; 
        }

    }
    
    
    
    cout << endl;
    system("pause");
    return 0;
}

收获:

1.首先排除一些情况

2.结合题目特点多思考