剑指offer:7.斐波那契数列

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qinjisheng_11/article/details/89790372

斐波那契数列

题目:

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。

n<=39

第一种想法:

使用递归的方法

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

		return Fibonacci(n - 1) + Fibonacci(n - 2);
	}

第二种想法:

采用非递归的方法

public class Demo01 {

	public static void main(String[] args) {
		int x = 3;
		int fibonacci = Fibonacci(x);
		System.out.println(fibonacci);
	}

	public static int Fibonacci(int n) {
		if (n == 0) {
			return 0;
		}
		if (n <= 2) {
			return 1;
		}
		int t1 = 1;
		int t2 = 1;
		int t3 = 0;
		for (int i = 3; i <= n; i++) {
			t3 = t2 + t1;
			t1 = t2;
			t2 = t3;
		}

		return t3;
	}
}

第三种想法:

直接输出答案

public class Solution {
  public  int Fibonacci(int n) {
		 int a[] = {0,1,1,2,3,5,8,13,21,34,55,89,
            144,233,377,610,987,1597,2584,
            4181,6765,10946,17711,28657,
            46368,75025,121393,196418,317811,
            514229,832040,1346269,2178309,
            3524578,5702887,9227465,14930352,
            24157817,39088169,63245986};
    return a[n];
  }
}

猜你喜欢

转载自blog.csdn.net/qinjisheng_11/article/details/89790372