javascript怎麼求13階乘

2022-11-15 22:02:17

方法:1、利用for迴圈,語法「var cj=1;for(var i=1;i<=13;i++){cj *= i;}」;2、利用遞迴函數,語法「function fac(n){if(n <= 1){return 1;}else{return n*fac(--n);}}」;3、利用三元運運算元,語法「function fac(n){return n>1?n*fac(n-1):1}」。

前端(vue)入門到精通課程:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

階乘是基斯頓·卡曼(Christian Kramp,1760~1826)於 1808 年發明的運運算元號,是數學術語。

一個正整數的階乘(factorial)是所有小於及等於該數的正整數的積,並且0的階乘為1。自然數n的階乘寫作n!。1808年,基斯頓·卡曼引進這個表示法。

亦即n!=1×2×3×...×(n-1)×n。階乘亦可以遞迴方式定義:0!=1n!=(n-1)!×n

javascript中支援多種方法來實現階乘,下面一起來看看。

方法1:利用for迴圈來實現

想要求13的階乘,就需要遍歷1~13的數位,因此for迴圈的初始條件可設定為 i = 1,限制條件可以是 i <= 13 或者 i < 14。

for (var i = 1; i <= 13; i++) {
}
登入後複製

然後在迴圈體「{}」中,將每次迴圈的i值相乘。這就需要一箇中間量cj來存乘積,變數cj的初始值要為1,這樣才不會影響結果。有兩種寫法(任選一個就行):

cj *= i;
//或
cj = cj * i;
登入後複製

等迴圈結束後,變數cj的值就13的階乘,輸出即可。

下面給出完整實現程式碼:

var cj = 1;
for (var i = 1; i <= 13; i++) {
    cj *= i;
}
console.log( "13的階乘為: " + cj);
登入後複製

1.png

方法2:利用遞迴函數來實現

function fac(num) {
    if (num <= 1) {
        return 1;
    } else {
        // 閉包 
        return num * fac(--num); //方法一 
        //return num*fac(num-1); //方法二 
        // return num*arguments.callee(num-1);//方法三 
        // return num*arguments.callee(--num);//方法四 
        /*但在嚴格模式下不能通過指令碼存取arguments.callee*/
    }
}
var result = fac(13);
console.log( "13的階乘為: " + result);
登入後複製

2.png

方法3:利用三元運運算元

function fac(n) {
    return n > 1 ? n * fac(n - 1) : 1
}
console.log('2的階乘為:', fac(2))
console.log('3的階乘為:', fac(3))
console.log('4的階乘為:', fac(4))
console.log('13的階乘為:', fac(13))
登入後複製

3.png

【推薦學習:】

以上就是javascript怎麼求13階乘的詳細內容,更多請關注TW511.COM其它相關文章!