方法:1、利用for循環,語法「var cj=1;for(var i=1;i1?n*fac(n-1):1}」。
本教學操作環境: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
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進階教程】
以上是javascript怎麼求13階乘的詳細內容。更多資訊請關注PHP中文網其他相關文章!