我需要找到小于给定数字的最大 2 次幂。
我陷入困境,找不到任何解决方案。
Code:
public class MathPow {
public int largestPowerOf2 (int n) {
int res = 2;
while (res < n) {
res =(int) Math.pow(res, 2);
}
return res;
}
}
这不能正常工作。
测试输出:
Arguments Actual Expected
-------------------------
9 16 8
100 256 64
1000 65536 512
64 256 32
如何解决这个问题?
Integer.highestOneBit(n-1);
For n <= 1
这个问题确实没有意义。在这个范围内做什么就留给感兴趣的读者了。
这是一个很好的位旋转算法集合黑客的喜悦 https://rads.stackoverflow.com/amzn/click/com/0321842685.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)