确定sum是2的幂

时间:2014-11-28 17:55:25

标签: algorithm math

用于确定任意正整数之和是否为2的幂的最快(渐近最坏情况时间复杂度)算法是什么?

2 个答案:

答案 0 :(得分:2)

一个可爱的小伎俩就是测试x&(x-1)是否等于0。

请注意,如果x等于0,您需要决定该怎么做,此测试将0标记为2的幂,因此您可能需要此情况的例外。

答案 1 :(得分:1)

从总和中减去1,并使用原始数字执行按位AND。 2的幂将得到0的结果。