Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 确定总和是否为2的幂_Algorithm_Math - Fatal编程技术网

Algorithm 确定总和是否为2的幂

Algorithm 确定总和是否为2的幂,algorithm,math,Algorithm,Math,确定任意正整数之和是否为二的幂的最快算法(在渐近最坏情况下时间复杂度)是什么?一个可爱的比特旋转技巧是测试x&(x-1)是否等于0 请注意,如果x等于0,您需要决定要做什么,此测试将0标记为2的幂,因此您可能希望在这种情况下出现异常 从总和中减去1,并对原始数字执行位与运算。2的幂的结果为0。您可以使用什么操作?@RenéG这并不能真正回答问题。例如,无论操作数的大小,加法是否被认为是常数时间?

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

一个可爱的比特旋转技巧是测试
x&(x-1)
是否等于0


请注意,如果x等于0,您需要决定要做什么,此测试将0标记为2的幂,因此您可能希望在这种情况下出现异常

从总和中减去1,并对原始数字执行位与运算。2的幂的结果为0。

您可以使用什么操作?@RenéG这并不能真正回答问题。例如,无论操作数的大小,加法是否被认为是常数时间?