LeetCode 题解:231. 2 的幂,递归,JavaScript,详细注释
原题链接:https://leetcode-cn.com/problems/power-of-two/
解题思路:
如果一个数是2的幂次方,表示如果将其不断除以2,最终结果为1。
如果一个数不是2的幂次方,那么将其不断除以2,其中间结果会出现一个不为1的奇数。
因此可以用递归,将其不断除以2,在中间结果为奇数时,判断其结果是否为1,为1表示n是2的幂次方。
如果当前结果为偶数,则将当前值除以2,继续递归。
当n为0时,会造成死循环,因此需要特别判断。
版权声明: 本文为 InfoQ 作者【Lee Chen】的原创文章。
原文链接:【http://xie.infoq.cn/article/2ca400241aaea408d994c4795】。文章转载请联系作者。
评论