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

/*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));*/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容