程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> leetcode筆記:Power of Three

leetcode筆記:Power of Three

編輯:關於C++

一. 題目描述

Given an integer, write a function to determine if it is a power of three.

Follow up: Could you do it without using any loop / recursion?

二. 題目分析

題目的大意很簡單,給出一個整數,判斷這個整數是不是3的整數次冪。下面提示盡量不適用循環和遞歸來實現,因此這裡給出兩種實現方法,其中第一種循環方式的耗時更少。

三. 示例代碼

class Solution {
public:
    bool isPowerOfThree(int n) {
        while (n >= 1)
        {
            if (n == 1 || n == 3)
                return true;
            else
            {                
                if (n % 3) break;
                n /= 3;
            }
        }
        return false;
    }
};
class Solution {  
public:  
    bool isPowerOfThree(int n) {  
        if (n < 1) return 0;  

        int maxPow3 = log10(INT_MAX) / log10(3);
        int maxPow3Val = pow(3, maxPow3);  

        return maxPow3Val % n == 0;  
    }  
};
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved