【剑指offer】斐波那契数列 --Java实现

题目描述

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

输入

4

返回值

3

1、递归

1 public class Solution {
2     public int Fibonacci(int n) {
3         if(n<=1){
4             return n;
5         }
6         return Fibonacci(n-1)+Fibonacci(n-2);
7     }
8 }

2、数组

 1 public class Solution {
 2     public int Fibonacci(int n) {
 3         int array[] = new int[40];
 4         array[0] = 0;
 5         array[1] = 1;
 6         for(int i = 2;i <= n;i++){
 7             array[i] = array[i-1]+array[i-2];
 8         }
 9         return array[n];
10     }
11 }

3、优化

 1 public class Solution {
 2     public int Fibonacci(int n) {
 3         if(n == 0){
 4             return 0;
 5         }else if(n == 1){
 6             return 1;
 7         }
 8         int sum = 0;
 9         int f1 = 0;
10         int f2 = 1;
11         for(int i=2;i<=n;i++){
12             sum=f1+f2;
13             f1=f2;
14             f2=sum;
15         }
16         return sum;
17     }
18 }

 

 

 

posted @ 2021-02-23 11:24  codesheep!  阅读(47)  评论(0)    收藏  举报