• LeetCode -- Power of Three


    Question:

    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?

    Analysis:

    给出一个整数,写一个函数判断它是否是3的n次幂。

    注意:能否不用循环或递归解决这个问题?

    Solution1: Using Loop.

    //Solution1: Loop
    public boolean isPowerOfThree(int n) {
             if(n <= 0)
                 return false;
             while(n > 1) {
                 if(n % 3 != 0)
                     break;
                 else 
                     n /= 3;
             }
             return n == 1;
    }

    Solution2: Using Recursion.

    //Solution2: Recursion.
    public static boolean isPowerOfThree(int n) {
             if(n <= 0)
                 return false;
             if(n == 1)
                 return true;
             if(n % 3 == 0)
                 return isPowerOfThree(n/3);
             else return false;
    }

    Solution3: Using Log Function. (logab = logcb / logca)

        public boolean isPowerOfThree(int n) {
            if(n <= 0)
                 return false;
             double log = Math.log10(n) / Math.log10(3);
             if(log - (int)log == 0)
                 return true;
             else return false;
        }
  • 相关阅读:
    es6 --- var const let
    HTTP -- 请求/响应 结构
    点击下载文件
    计算机当前时间
    js -- img 随着鼠标滚轮的变化变化
    vue --- 全局守卫
    vue -- 路由懒加载
    vuex -- 状态管理
    js对数组进行操作
    高性能网站建设
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/5187462.html
Copyright © 2020-2023  润新知