32除以零点零八写在纸上的
32除以零點零八写在纸上的
32除以零点零八写在纸上的
你对这个回答的评价是
32除以零点零八写在纸上的
32除以零點零八写在纸上的
32除以零点零八写在纸上的
你对这个回答的评价是
给定一个整数编写一个函数来判断它是否是 2 的幂次方。
0
一开始也是用最简单传统的思维用while来一直对n进行2除(代码1),但是执行到最后是超出时间限制的然后用用同樣的方法,但是用递归(代码2),便可以得到结果
但其实网上更多的解决办法是利用位运算,所以这里总结出规律就是一旦涉及到数字的運算便要考虑是否能使用与& / 或|。
(代码3)中利用到的就是下面的规律啦~
显然每一个符合2的幂的数的二进制都只有一个1,因此我们可以對二进制进行求和最终结果为1,即证明它为2的幂
这里还可以有另一种运算(代码4),也即将这个数n减去1变成:
然后再将它和原来的數进行 & 运算,如果是2的幂则最终结果一般为0。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。