一、定义
阶乘Factorial:一个正整数的阶乘是所有小于及等于该数的正整数的积,并且有0的阶乘为1,自然数n的阶乘写作n!
二、算法思想
0的阶乘是1;任何数的阶乘都是此数乘以比此数小1的数的阶乘。
三、具体实现
1、非递归
function jieChengFdg(num) { var result = 1; if(num < 0) return -1; if(num == 0 || num == 1) return 1; while(num>1) { result *= num--; } return result; } console.log(jieChengFdg(5));//5*4*3*2*1=120
2、递归
function jieChengDg(num) { var result = 1; if(num < 0) return -1; if(num == 0 || num == 1) return 1; if(num > 1) return num*jieChengDg(num-1); } console.log(jieChengDg(10));//3628800
四、效率分析
1、时间复杂度
O(n)
2、空间复杂度
O(n)