如何判断两个数值是否属于同一个十位数区间(Decade)?
判断两个数是否处于同一十位数区间(不拆分数字实现)
嘿,这个问题其实用简单的数学运算就能轻松解决,完全不用拆分数字或者转字符串哦~
核心思路
因为你的数值范围被限定在11到89之间,且不含整十数,所以每个数所属的十位数区间,本质就是十位数字相同的一组数(比如11-19是十位为1的区间,21-29是十位为2的区间,以此类推)。
要判断两个数是否在同一区间,我们不需要拆分数字取十位,只需要通过整数除法获取每个数的十位等价值,再比较这两个值是否相等即可——整数除法会自动舍去小数部分,正好对应十位数字。
示例验证
- 当
actual = 23,next = 17时:23 ÷ 10取整为2,17 ÷ 10取整为1,两者不等,所以不属于同一区间; - 当
actual = 23,next = 27时:23 ÷ 10和27 ÷ 10取整都为2,两者相等,所以属于同一区间。
代码实现
JavaScript版本
const actual = 23; const next = 27; // 核心判断逻辑 const isSameDecade = Math.floor(actual / 10) === Math.floor(next / 10); console.log(isSameDecade); // 输出 true
Python版本
actual = 23 next_num = 27 # 避免使用Python关键字"next" # 核心判断逻辑 is_same_decade = actual // 10 == next_num // 10 print(is_same_decade) # 输出 True
补充说明
这个方法之所以可靠,是因为题目已经排除了整十数(比如20、30这类),所以整数除法的结果完全对应十位数字,不会出现混淆的情况。如果后续范围扩展到包含整十数,这个逻辑依然适用,因为整十数的十位数字本身就是它所属的区间标识。
内容的提问来源于stack exchange,提问作者mge
相关产品推荐
相关产品推荐

