方法: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!=1
,n!=(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);
登入後複製
方法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);
登入後複製
方法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))
登入後複製
【推薦學習:】
以上就是javascript怎麼求13階乘的詳細內容,更多請關注TW511.COM其它相關文章!