B2152 分离整数的各个数

· · 题解

欢迎报名洛谷网校,期待和大家一起进步!

本题考察循环结构。

要求从个位开始分离出它的每一位数字,从低位到高位的顺序依次输出,也就是说我们要不断取出最低位。一个数 n10 取余(n % 10)就可以得到它的个位数字。每次取出的个位数字 d,就是我们要输出的下一个数字。

取出个位数字后,再把 n 除以 10n / 10),就相当于把这个个位去掉,剩下的就是去掉了最低位的新数。

评测系统通常会过滤掉在输出结尾多出来的空格。如果你不想再多输出空格的话,我们可以在取出数字并输出后,再看一下新的 n 是否还大于 0,如果还大于 0 才输出空格。

参考代码:

while (n > 0) {
    int d = n % 10;
    cout << d;
    n = n / 10;
    if (n > 0)
        cout << ' ';
}