javascript递归经典试题
递归的概念
在程序中函数直接或间接调用自己
注意:使用递归函数一定要注意,处理不当就会进入死循环。递归函数只有在特定的情况下使用 ,比如阶乘问题。
1斐波那切数列(又称黄金分割数列\兔子数列)
<script type="text/javascript">
//1、1、2、3、5、8、13、21、34.....
//规律:自身等于前两项之和;
//(n-1)+(n-2)=n
function fibonacci(n){
if(n<=2){
return 1;
}
return fibonacci(n-1)+fibonacci(n-2);
}
console.log( fibonacci(5) );
</script>
2、一元钱可以买一瓶水,两个空瓶可以换一瓶水,
三个瓶盖可以换一瓶水,20块钱可以换多少瓶水
<script type="text/javascript">
// 借鉴思路;1元 1瓶
// 2元 5瓶
// 3元 11瓶
// 4元 17瓶
// 5元 23瓶
function water(n) {
if(n == 1) {
return 1;//第一位与后面的数字没有规律 当计算一元钱时 直接return
}
else if(n == 2) {
return 5;
}
return water(n - 1) + 6;
}
console.log(water(20));
</script>