递归函数

递归函数:在函数内部自己调用自己的函数
递归能做循环能做的所有事情
循环做不了的 递归也能做
递归写 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)

上代码

原文地址:https://www.cnblogs.com/weiyz/p/7119522.html