斐波那契数列 一般都是在面试的时候会碰到的算法,实际开发中不太会用到这个,
下面贴上代码+我对这个算法的理解
* 分析:
* 递归的规律:
* 第三项开始 返回 前两项之和
* 第n项 = (n-1)+(n-2)
* 出口条件:
* 第一项 返回1
* 第二项 返回1
private static int number(int n) {
if (n == 1 || n==2) {
return 1;
} else {
return number(n-1)+ number(n-2);
}
这个算法我一开始别扭了半天才弄搞明白 一直纠结这个第几项应该怎么理解,这个第几项得到的数应该是个什么数.
在笔记本上模拟了半天.搞明白了
其实再大的数都是由第一个和第二个基数得来的.基数就是1 和 1 ,在方法中我们可以看到基数的体现 就是第一项和第二项返回的都是1,这就是为以后的数提供累加的基数,递归到最后的数 都是由 1+1+1+1.......组成的.这些数都是把他们算到最后,算到方法的出口,然后依次返回.