如何检查数字是否为5的幂

Kau*_*ele 4 algorithm math numbers

如何检查数字是否为5的幂?

我可以想到下面的算法.有没有办法改善它?任何数学技巧?

  1. 首先检查最后一位数是否为5.
  2. 如果最后一个数字是5; 5.通过划分它
    如果除法的结果是1,则数量是5,功率
    否则检查是否除法结果本身的5功率(即去与结果作为数字到步骤1).

Pau*_*l R 9

你不需要查看个别数字,你可以这样做:

n = (int)(log(x) / log(5)); // get n = log5(x), truncated to integer
if (pow(5, n) == x)         // test to see whether x == 5^n
    // x is a power of 5
Run Code Online (Sandbox Code Playgroud)

LIVE DEMO

  • 是的 - 我不知道有任何现代语言没有像 `log`、`pow` 等基本数学函数,但你永远不知道。当然,如果语言不支持,您始终可以实现自己的版本。 (2认同)