// 递归:自己的函数内部执行自己
// 1:找规律;2:找出口
// 有点:代码简单;精炼;弊端:运算量大 结果最后输出
// function fn(){
// // 递归;死循环
// fn()
// }
// function fn(n) {
// var res = ++n;
// console.log(res);
// // 找出口
// if (res === 10) {
// return res;
// } else {
// return fn(res);
// }
// }
// fn(0);
// var value = 0;
// // 求 1+2+3+...+11 = n+n+1
// function sum (n){
// console.log(value,'+',n,'=',value+n)
// value += n; // 0+1
// --n;
// console.log(value);
// if(n===0){
// return value
// }
// return sum(n) //2
// }
// sum(11)
// 求 n 的阶层 n*(n-1)*....*1
function fn(n){
if(n === 0 ){
return 1
} else {
return n*fn(n-1)
}
}
console.log(fn(5))
// 递归执行的过程
// 5 ===> 5*4
// 4 ===> 5*4*3
// 3: ===> 5*4*3*2
// 2: ===> 5*4*3*2*1
// 1: ===> 120