LeetCode刷題EASY篇Power of Two
阿新 • • 發佈:2018-12-20
題目
Given an integer, write a function to determine if it is a power of two.
Example 1:
Input: 1 Output: true Explanation: 20 = 1
Example 2:
Input: 16 Output: true Explanation: 24 = 16
Example 3:
Input: 218 Output: false
十分鐘嘗試
遞迴,思路正確,後來基準條件稍微有問題,不知道如何區分,n=1,還是遞迴呼叫的時候中間值的1.比如輸入是3,如果if判斷n==1返回true,那麼3第二次invoke就是1,返回true。這個是不正確的。判斷對n求mod,等於0才遞迴呼叫。這樣可以解決。程式碼如下:
class Solution {
public boolean isPowerOfTwo(int n) {
if(n==0) return false;
if(n==1) return true;
if(n%2==0){
return isPowerOfTwo(n/2);
}
return false;
}
}