这是一个面试题:“给定两个整数x和y,检查x是否为y的整数幂”(例如,对于x = 8和y = 2,答案是“true”,而对于x = 10和y = 2,“false”)。
The obvious solution is:
int n = y; while(n < x) n *= y; return n == x
现在我正在考虑如何改进它。
当然,我可以检查一些特殊情况:例如,x
和y
都应该是奇数或偶数,即我们可以检查x
和y
的最低有效位。但是我想知道是否可以改进核心算法本身。