题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)
思路
(1)斐波那契数列(从第0项开始):0 1 1 2 3 5 8 13 21 34
(2)斐波那契数列的特点:第 n 项,等于第(n-1)项和(n-2)项之和,即f(n) = f(n-1)+f(n-2);
(3)两种做法:递归和迭代
代码
public class FibNum {
//递归
private static int fib(int n){
if(n == 0){
return 0;
}
if(n == 1 || n == 2){
return 1;
}
return fib(n-1)+fib(n-2);
}
//循环迭代
private static int fib2(int n){
if( n == 0){
return 0;
}
int first = 1;
int second = 1;
int third = 1;
while(n>2){
third = first+second;
first = second;
second = third;
n--;
}
return third;
}
//测试
public static void main(String[] args) {
System.out.println(fib(8));
System.out.println(fib2(8));
}
}