zoukankan      html  css  js  c++  java
  • 面试题之:js 实现阶乘

    阶乘的公式是:  n! = 1 * 2 * 3 * 4 * ... * (n-2) * (n-1) * n

    输入一个 n, 实现阶乘 。代码如下:

    // 公共 html 部分
    <p>
        请输入:
        <input type="text" id="input" placeholder="请输入整数n" />
    </p>
    <button onclick="set()">button</button>
    <div class="result">
        结果:<div id="result"></div>
    </div>

    方法一:递归

    function set(){ // 入口函数
        let n = document.getElementById('input').value
        let res = this.math(n)  // 结果
       
        document.getElementById('result').innerText = res
    }
    
    function math(n){ // 递归函数
        if(n < 0){
            return -1
        }else if(n === 0 || n === 1){
            return 1
        }else{
            return n * this.math(n-1)
        }
    }

    方法二: while()

    function set(){
        let n = document.getElementById('input').value
        let res = n  // n = n * (n-1) * (n-2) * ... * 2 * 1
       
        if(n < 0){
            res = -1
        }else if(n === 0 || n === 1){
            res = 1
        }else{
            while(n > 1){
                n--    // 递减
                res *= n
            }
        }
    
        document.getElementById('result').innerText = res
    }

    方法三: for 循环

    思路与 while  一样,采用 递减相乘的思路。

  • 相关阅读:
    bootstrap
    bootstrap
    IDEA 配置maven
    jQuery
    jQuery
    jQuery
    jQuery
    Jquery
    【k8s】Pod-metadata
    【k8s】terminationMessagePolicy
  • 原文地址:https://www.cnblogs.com/bala/p/11767371.html
Copyright © 2011-2022 走看看