【剑指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 }
浙公网安备 33010602011771号