取模运算符分离三位数各位数字方法
作者:若安舟已远
时间:2026-02-03
来源:互联网
浏览:0
本文讲解如何通过整数除法和取模运算准确提取三位数的百位、十位和个位数字,重点纠正“先取模再除法”导致中间位为0的常见错误,并提供正确、可复用的代码实现。

本文讲解如何通过整数除法和取模运算准确提取三位数的百位、十位和个位数字,重点纠正“先取模再除法”导致中间位为0的常见错误,并提供正确、可复用的代码实现。
在处理用户输入的三位整数(如 375)时,常需将其拆分为独立的数字:百位 3、十位 7、个位 5。初学者容易误用取模与除法的顺序,例如写成 (number % 10) / 10——这必然返回 0,因为 number % 10 的结果恒在 [0, 9] 范围内,再整除 10 就是整数除零截断,结果永远为 0。
正确思路是先“削去”低位,再“截取”目标位:
- 个位(a):number % 10 —— 直接取余,保留最后一位;
- 十位(b):(number / 10) % 10 —— 先整除 10 去掉个位(如 375 / 10 = 37),再对 10 取模得 7;
- 百位(c):number / 100 —— 整除 100 直接得到最高位(375 / 100 = 3)。
以下是修正后的完整示例代码(含输入验证建议):
import java.util.Scanner;
public class DigitSeparator {
public static void main(String[] args) {
Scanner read = new Scanner(System.in);
System.out.println("请输入一个三位正整数:");
int number = read.nextInt();
// 简单校验:确保是三位数(100–999),避免逻辑错位
if (number < 100 || number > 999) {
System.out.println("警告:输入应为三位数,结果可能不准确。");
}
int a = number % 10; // 个位
int b = (number / 10) % 10; // 十位(关键修正!)
int c = number / 100; // 百位
System.out.println(c + " " + b + " " + a); // 输出:3 7 5
}
}⚠️ 注意事项:
- 此方法仅适用于非负三位整数;若需支持更大位数(如四位数的千位),可推广为 digit = (number / (int)Math.pow(10, pos)) % 10;
- Java 中整数除法自动向下取整,无需额外处理;
- 若输入含前导零(如 025),键盘输入时会被解析为 25(即两位数),因此该方案依赖数值本身,而非字符串格式。
掌握 (n / divisor) % 10 这一模式,是理解十进制位权与整数运算关系的关键一步——它不仅解决当前问题,更是实现数字反转、回文判断、进制转换等算法的基础。
作者最新文章
Word格式转换成PDF?Word转PDF的具体步骤是什么?
2026-09-02 19:13
长安猎手K50 2026款上市,14.19万元起售
2026-08-25 16:08
价格大跳水,网友惊呼买早了!两大巨头正面交锋,最高直降2500元,几乎所有品类“你降我也降”
2026-08-25 16:02
全新奥迪Q3 L申报信息揭晓,车身尺寸升级,动力配置保持强劲
2026-08-25 15:44
iPhone15ProMax屏幕常亮怎么设置 iPhone15ProMax屏幕常亮设置方法
2026-08-25 15:31
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多
Windows 10
Windows
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式
Windows/macOS/Linux
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















