10_1、斐波那契数列

斐波那契数列

题目描述

写一个函数,输入n,求斐波那契数列的第n项。斐波那契数列的定义如下:
在这里插入图片描述

思路分析

解法一:根据斐波那契数列的定义方程式写出最直观的递归。效率较低,存在很多重复计算。代码如下:

public int Fibonacci(int n) {
	if(n==0)return 0;
    if(n==1)return 1;
    return Fibonacci(n-1)+Fibonacci(n-2);
}

解法二:为解决解法一的重复计算,可以把已经计算出来的数列中间项保存起来,用于下一次计算。代码如下:

public int Fibonacci(int n) {
	if(n==0)return 0;
    if(n==1)return 1;
    int first=0,second=1,FibN=0;
    for(int i=2;i<=n;i++){
    	FibN=first+second;
    	first=second;
    	second=FibN;
    }
    return FibN;
}