递归函数的使用案例,以及每个案例的分析与注释

2017-10-20  本文已影响8人  UL_葡萄丸子少女

/*function fn(num){

return num===1? 1:(num*fn(num-1));//这里特殊情况就是1的阶乘始终都是1,后面返回值是通过分析10!=10*9!,9!=9*8!,一个个递归而来,所以直接调用递归函数

}

console.log(fn(5));*/

/*定义递归函数计算菲波拉契数列,它主要是计算第几项的值,前两项不变始终都是1,只有从第三项开始变化,所以做循环也是从第三项开始做循环*/

/* function fn(num){

return num<=2? 1:(fn(num-1)+fn(num-2));//需要知道前两项始终都是1;所以返回值为1,后面返回值通过分析房f(4)=f(3)+f(2),f(3)=f(2)+f(1)

}

for(var i=1;i<=15;i++){

console.log(fn(i));//这是一次输出15个项每项的内容

}*/

/*递归函数计算两个数辗转相除,得出最大公约数*/

/*function fn(m,n){

var r=m%n;

m=n;

n=r;

return r!==0 ? fn(m,n):m;//为什么这么写的主要是因为,求最大公约数循环的步骤就是这样,直到m%n的余数为0,结束

}

console.log(fn(4,12));*/

上一篇 下一篇

猜你喜欢

热点阅读