JavaScript求阶乘的八种方法 | 您所在的位置:网站首页 › a的阶乘公式怎么算 › JavaScript求阶乘的八种方法 |
//方法一 尾递归的优化 //构建一个带尾递归的函数。因为它会返回自身调用的结果,所以它是尾递归 //JavaScript 当前没有对这种形式的递归做出优化 var factorial = function factorial(i, a) { console.log(i, a); a = a || 1; console.log(i, a); if (i if (n === 1) return total return factorial(n - 1, n * factorial) } factorial(5, 1)//方法三 // 用arguments.callee可以不用管函数名变还是不变都可以用 function fac(num) { if (num // 闭包 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(4); console.log("这是下面4的阶乘:", result);//方法四 var factorial = function fac(num) { if (num // 闭包 return num * fac(num - 1); } } var result = factorial(4); console.log("这是最后下面4的阶乘:", result);//方法五 function fac(n) { return n > 1 ? n * fac(n - 1) : 1 } console.log('结果为:', fac(5))//方法六 function test1(num) { for (var i = num - 1; i >= 1; i--) { num *= i; } return num; } console.log("for循环递归", test1(5));// 方法七 while循环 function test2(num) { var result = num; while (num > 1) { num--; result *= num; } return result; } console.log("while循环递归", test2(4));//方法八 function factorial(n) { if (n === 1) return 1 return n * factorial(n - 1) } factorial(5)//方法九 var count = 0; var jc = 1; for(var j = 1;j // 定义变量计算当前数的阶乘 var jc = 1; for (var j = 1; j |
CopyRight 2018-2019 实验室设备网 版权所有 |