【发布时间】:2014-11-11 10:28:36
【问题描述】:
如何判断一个数是否是 5 的幂?
我可以想到下面的算法。有没有办法改进它?有什么数学技巧吗?
- 首先检查最后一位是否为 5。
- 如果最后一位是 5;除以 5。
如果除法的结果是 1,则数字是 5 的幂。
否则检查除法结果本身是否为 5 的幂(即,以结果为数字转到第 1 步)。
【问题讨论】:
-
@mat 你有什么建议?删除步骤和做什么?题外话是什么意思。如果您知道任何特定文档,请指出它。这将比这样的 cmets 有所帮助。
-
> 有什么数学技巧吗?您的算法似乎是有效的,除非您想用汇编语言编写代码并需要优化。输入可以有多大?数千位数字,以文本文件的形式发送?
-
@TimothyHa 数字可以很大也可以很小。与我几乎原始的方法相比,我更倾向于知道更好的解决方案。
-
如果数字包含数千位数字,则您的算法将不起作用,而不像 Pham Trung 的回答那样适合 INT 或 LONG。而且取对数也可能是个问题。