判断数字是否以 100 结尾的算法

Algorithm for determining if a number ends in 100

是否有快速数学计算来确定给定数字是否以 100 结尾?

样本:

hasHundred( 5 ) ==> false
hasHundred( 100 ) ==> true
hasHundred( 1000 ) ==> false
hasHundred( 10100 ) ==> true

使用字符串并检查 '100' 相当简单,但我想知道是否可以用数学方法完成。

你说的是一致性。您正在查找

形式的号码
100 + k * 1000

其中 k 是某个整数;另一种写法是 numbers for which

n % 1000 === 100

也就是说除以1000后的余数一定是100

从理论上讲,每个数字都可以写成 10 的幂之和。 如果该总和像这样开始 0 + 0*10^1 + 1*10^2 + ... 然后 "it starts with 100" 如您所定义。

因此,您所需要的只是一种算法,可以将数字写成那种形式。 (让我看看我能不能找到什么)

是的,该算法可能效率极低——处理字符串的效率更高