top1编程
← 返回题目
题解

【基础】回文数

1 条题解

  • 0
    @ 2026-7-30 1:10:21

    解题思路

    如果当前数不是回文数,就把它倒过来并相加,操作次数加 1。重复这个过程,直到当前数是回文数。

    参考代码

    
    #include <iostream>
    using namespace std;
    bool hui(long long n){
        long long a=n,s=0;
        while(n>0){s=s*10+n%10;n/=10;}
        return a==s;
    }
    int main(){
        // 读入题目给出的输入数据
        long long n;
        cin >> n;
        int cnt=0;
        while(!hui(n)){
            long long a=n,s=0;
            while(a>0){s=s*10+a%10;a/=10;}
            n+=s;
            cnt++;
        }
        // 完成题目的关键计算或判断
        cout << cnt;
        // 输出题目要求的答案
        return 0;
    }
    

    复杂度

    若进行了 k 次操作、数字有 L 位,时间复杂度 O(kL),空间复杂度 O(1)

    • 1