本文讲解如何用取模(%)和整除(/)运算准确分离一个三位整数的个位、十位和百位数字,纠正常见误区(如 `(n % 10) / 10` 恒为 0),并提供可运行的 java 示例代码。
在 Java(及其他支持整数算术的语言)中,分离一个三位整数(如 472)的各位数字,本质是利用十进制位权特性:个位权重为 $10^0=1$,十位为 $10^1=10$,百位为 $10^2=100$。关键在于理解 %(取模)和 /(整除)的组合逻辑——它们不是可交换的操作,顺序至关重要。
⚠️ 常见错误:int b = (number % 10) / 10;
原因:number % 10 结果恒在 [0, 9] 范围内,再整除 10 必得 0(如 2 / 10 = 0)。该表达式无法获取十位,纯属逻辑倒置。
import java.util.Scanner;
public class DigitExtractor {
public static void main(String[] args) {
Scanner read = new Scanner(System.in);
System.out.println("Input a three-digit number:");
int number 
= read.nextInt();
int a = number % 10; // 个位
int b = (number / 10) % 10; // 十位 ← 关键修正行
int c = number / 100; // 百位
System.out.println(c + " " + b + " " + a); // 输出格式:百位 十位 个位
}
}输入示例:472 → 输出:4 7 2
输入示例:105 → 输出:1 0 5(注意:0 是合法十位值,代码能正确处理)
掌握这一模式,不仅解决数字拆分问题,更为理解进制转换、密码学基础运算及算法题中的数位处理打下坚实基础。