如何在Pascal中用mod或div判断正整数是否为两位数(禁用函数)
判断正整数是否为两位数(仅用mod/div操作)
要判断一个正整数是否为两位数,核心是确认它落在10到99的范围内,仅用整除(div)和取模(mod)操作可以通过以下两种可靠逻辑实现:
方法1:通过整除10的结果判断
两位数的十位数字必然在1到9之间,因此对目标数n执行整除10操作(n // 10):
- 若结果≥1且≤9 → 是两位数
- 若结果=0(n<10)或≥10(n≥100)→ 不是两位数
示例代码(以Python为例):
n = int(input("输入一个正整数: ")) if 1 <= n // 10 <= 9: print("Two-digit number") else: print("Not a two-digit number")
方法2:结合整除100和整除10判断
通过判断目标数是否只有两位:
n // 100 == 0:说明数的百位及以上为0(即n<100)n // 10 > 0:说明数的十位不为0(即n≥10)
同时满足这两个条件即为两位数。
示例代码:
n = int(input("输入一个正整数: ")) if n // 100 == 0 and n // 10 > 0: print("Two-digit number") else: print("Not a two-digit number")
为什么单独用mod10不行?
仅用n mod 10只能获取个位数字,无法区分两位数(如23,mod10=3)和多位数(如123,mod10=3),必须结合整除操作判断高位的位数才能准确识别。
内容的提问来源于stack exchange,提问作者programm.ing
相关产品推荐
相关产品推荐

