剑指offer-10 斐波那契数列
一、题目描述
现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。
斐波那契数列指的是这样一个数列:
一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后有多少对兔子?
我们可以把这些兔子的数量以对为单位列出数字就能得到一组数字:1、1、2、3、5、8、13、21、34、55、89、144、233。所以,过了一年之后,总共会有233对兔子了。那么续往下呢?
其实这组数字可以形成一个有规律的数列,这个数列的规律是这样的:它的第一项、第二项是1,而从第三项起每一项都等于它的前两项之和。这个数列是在1228年意大利数学家斐波那契首先提出的。我们把这个数列叫做“斐波那契数列”。在这个数列中的数字,就被称为“斐波那契数”。
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........
这个数列从第3项开始,每一项都等于前两项之和。
二、解题
1.解题思路
设f(n)表示斐波那契数列中的第n个数,则
那么就可以很容易的写出递归代码,
2.解题代码
public class Solution {
public int Fibonacci(int n) {
if (n ==0){
return 0;
}
if ( n == 1 ||n ==2){
return 1;
}
else{
return Fibonacci(n-1)+Fibonacci(n-2);
}
}
}
3.总结
此题考察的是递归,了解斐波那契数列的特性,比较容易解题。