标签: algorithm math
用于确定任意正整数之和是否为2的幂的最快(渐近最坏情况时间复杂度)算法是什么?
答案 0 :(得分:2)
一个可爱的小伎俩就是测试x&(x-1)是否等于0。
x&(x-1)
请注意,如果x等于0,您需要决定该怎么做,此测试将0标记为2的幂,因此您可能需要此情况的例外。
答案 1 :(得分:1)
从总和中减去1,并使用原始数字执行按位AND。 2的幂将得到0的结果。