递归函数
递归函数:在函数内部自己调用自己的函数
递归能做循环能做的所有事情
循环做不了的 递归也能做
递归写 1+2+3+...+n;
方法:
1.找临界值:无须计算,即可得出的值:-退出递归
2.这一次和上一次运算的关系:+n
3.假设当前函数可以运行,根据上一次调用自身运算的结果,写出这次的运算结果
addSum() addSum(49) 1+2+..+50 = addSum(49)+50
->推断出 第n次运算与第n-1次运算的关系 addSum(n) = asddSum(n-1)+n;
一个标准的递归函数 必须有参数 有返回值
function addSum(n){
if(n==1){
return 1;
}
return addSum(n-1)+n
}
console.log(addSum(100));
输入一个n,打印n个hello world 使用递归
兔子繁殖问题,设有一对新生兔子,从第四个月开始他们每个月月初
都生一对兔子,新生的兔子从第四个月月初开始又每个月生一对兔子,
按此规律,并假定兔子没有死亡,n(n<=20)个月月末共有多少对兔子?
这个逻辑性比较强,以后自己再慢慢研究,有点难理解。
有个规律,也是很有名的斐波那契数列,又称黄金分割数列,因为以‘兔子繁殖’而引入,所以也称‘兔子数列’。
这个大致规律如下:
数组规律: 1 2 3 4 5 6 7 8 9 10 月份
兔子: 1 1 1 2 3 4 6 9 13 19 兔子数量
// 斐波那契数列 f(n) = f(n-1)+f(n-3)
上代码