LeetCode题解:Power of Two
2015-07-15 09:00
543 查看
题目链接: ## Pow of Two
题目描述:
Given an integer, write a function to determine if it is a power of two.题目解释:
给定一个整数,实现一个函数,来判断这个整数是否是2的次幂。比如 8 为 2 的 3次幂, 5 则不是 2 的次幂。
解题方案:
如果一个数能一路被2整除,直到变成数字1,那么这个数就是2的次幂,例如16是2的次幂,那么16可以一直被2整除直到除到1。这里我们需要注意边界条件:负数和零都不是2的次幂,可以直接排除掉。
在除2过程中,只要有一次不能被2整除,那么这个数就不是2的次幂
代码的实现过程就比较简单了,先排除边界条件,然后迭代除2,对于能整除到最后的数返回TRUE,对于中间不能被2整除的数字直接返回false即可。接下来咱们看具体的实现代码:
bool isPowerOfTwo(int n) { if (n <= 0 ) { return false; } if (n == 1) { return true; } while(true) { if (n%2 == 1 && n != 1) { return false; } else { n /= 2; if (n == 1) { return true; } } } }
这个题目比较简单,一个循环的应用,注意边界条件的处理即可。
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解
- LeetCode [Day 5] Longest Palindromic Substring 题解
- LeetCode [Day 6] ZigZag Conversion 题解