lintcode算法題之142-O(1)時間檢測2的冪次

142. O(1)時間檢測2的冪次

中文English

用 O(1) 時間檢測整數 n 是否是 2 的冪次。

樣例

Example 1:
	Input: 4
	Output: true


Example 2:
	Input:  5
	Output: false

代碼區:

class Solution {
    /*
     * @param n: An integer
     * @return: True or false
     */
    public boolean checkPowerOf2(int n) {
        // write your code here
        boolean flag=false;
                 if (n<=0) {
                    flag=false;
                }
                else if (n==1) {
                   flag=true;
            } else if((n%2)!=0)
                {
                     flag=false;
                    
                }else if (n==1) {
               
                    flag=true;
                }else if((n%2)==0)
                {
                    int temp=n;
                 
                    while(temp>=0)
                    {
                        if(temp==2)
                        {
                            
                            flag=true;
                      
                            break;
                        }else  if((temp%2)==0)
                        {
                        
                        
                            temp=temp/2;
                            
                        
                            
                        }
                        else 
                        {
                        
                            flag=false;
                            break;
                        }
                        
                    }
                    
                    
                }else
                {
            
                    flag=false;
                }
                 return flag;
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章