如何找到目标值的最近向下倍数?
如何找到目标值的最近向下倍数?
嗨,我完全懂你要的是什么——就是找不超过目标值的最大指定倍数对吧?你说试过mode方法没成功,其实这个需求用基础的数学运算就能轻松解决,没必要绕弯路~
给你两种简单直接的方法:
方法一:整数除法后回乘
核心思路是先把目标值除以倍数,只保留整数部分(舍去小数),再把结果乘回倍数,就能得到最接近且不大于目标值的倍数。
拿你的例子来说:
- 目标值9,倍数2,先算
9 // 2 = 4(整数除法直接舍去小数),再算4 * 2 = 8,正好是你要的结果。
给你几个编程语言的示例:
- Python 实现:
target = 9 multiplier = 2 nearest_lower_multiple = (target // multiplier) * multiplier print(nearest_lower_multiple) # 输出:8
- JavaScript 实现:
const target = 9; const multiplier = 2; const nearest_lower_multiple = Math.floor(target / multiplier) * multiplier; console.log(nearest_lower_multiple); // 输出:8
方法二:用取余运算反推
另一种思路是先算目标值除以倍数的余数,再用目标值减去这个余数,剩下的就是我们要的数。
还是你的例子:
- 9除以2的余数是
9 % 2 = 1,然后9 - 1 = 8,结果一样。
这种方法的代码示例(Python):
target = 9 multiplier = 2 nearest_lower_multiple = target - (target % multiplier) print(nearest_lower_multiple) # 输出:8
至于你提到的mode(应该是取余mod)方法没成功,可能是你没找对利用余数的方式——直接取余只能得到剩下的部分,得用目标值减去余数才是我们要的倍数哦~
备注:内容来源于stack exchange,提问作者Jawed Jawed
相关产品推荐
相关产品推荐

