题目
从标准输入读入一个非负整数 n,将其各个十进制数位逆序输出。
输入格式:一行输入一个非负整数 n。
输出格式:输出逆序后的数字序列,末尾换行。
数据范围与约定:0 ≤ n ≤ 2×109。
思路与算法
1. 取模与整除
通过 n % 10 取出当前个位数直接打印,然后通过 n /= 10 截断个位,循环直到 n 为 0。
2. 独立处理 0
如果初始输入为 0,普通的 while (n > 0) 无法进入循环,需使用 do-while 保证数字 0 能被正确输出一位。
完整程序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// 独立处理 0
if (n == 0) {
System.out.println(0);
return;
}
// 取模与整除逐位提取输出
StringBuilder sb = new StringBuilder();
int x = Math.abs(n);
while (x > 0) {
if (sb.length() > 0) {
sb.append(' ');
}
sb.append(x % 10);
x /= 10;
}
System.out.println(sb.toString());
}
}运行示例
输入:
1234输出:
4 3 2 1