检查正整数是否为 2 的幂的最短方法
shortest way to check if a positive integer is a power of two
这个问题来自求职面试...
使用此模板编写一个 C++ 函数来检查正整数是否为 2 的幂。
bool p(int n)
{
return ********;
}
您必须将 8 个“*”符号替换为其他符号才能使该功能正常工作。
我最好的方法是:
bool p(int n)
{
return !(n&=n-1);
}
可惜打错了,因为这里有9个符号...
有什么想法吗?
为什么分配给 n
?只需删除 =
即可少一个字符。它会创建一个临时的,逻辑不会改变。
这个问题来自求职面试...
使用此模板编写一个 C++ 函数来检查正整数是否为 2 的幂。
bool p(int n)
{
return ********;
}
您必须将 8 个“*”符号替换为其他符号才能使该功能正常工作。
我最好的方法是:
bool p(int n)
{
return !(n&=n-1);
}
可惜打错了,因为这里有9个符号...
有什么想法吗?
为什么分配给 n
?只需删除 =
即可少一个字符。它会创建一个临时的,逻辑不会改变。