题目内容:输出一个整数的每一位,如:123的每一位是1 2 3
思路:设置计数器统计整数位数、循环迭代进行 / % 运算
1. 先将整数 n 赋值给 tmp ,tmp 循环进行 / 运算,得到位数
2. 重新把整数 n 赋值给临时变量 tmp
3. 利用 / % 运算得出每一位上的值
题解:
System.out.println("请输入一个整数:");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int tmp = n; //赋值给临时变量
int count = 0;
System.out.print(n + "的每一位是:");
if (tmp == 0) { //如果是0,输出0
System.out.print(tmp);
} else { //非0情况
while (tmp != 0) {
tmp /= 10;
count++; //统记整数的位数
}
tmp = n;
while (count != 0) {
int x = tmp / (int) Math.pow(10, count - 1); //pow方法取得10的幂
System.out.print(x + " ");
tmp %= Math.pow(10, count - 1); //去除此时的最高位数
count--;
}
}
结论:仅使用迭代方法,故过程复杂,深入学习后,希望获得更优的方法。
如有Bug,望指正。