1 条题解

  • 0
    @ 2026-10-4 9:36:32

    题解:【进阶】反复计算数位和

    思路

    本题使用十进制拆位:

    n % 10
    

    得到当前个位;然后:

    n /= 10;
    

    删除当前个位。循环直到所有数字处理完成。

    本题建议练习:while + do-while。

    参考代码

    #include <iostream>
    using namespace std;
    int main(){
        unsigned long long n; cin >> n;
        int times = 0;
        while(n >= 10){
            unsigned long long sum = 0;
            do{
                sum += n % 10;
                n /= 10;
            }while(n != 0);
            n = sum;
            times++;
        }
        cout << n << ' ' << times;
        return 0;
    }
    

    信息

    ID
    5368
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者