Fibonacci sequence
-
Question: The value of the nth item in the sequence
-
Abstract state F(i): the value of the i-th item in the sequence
-
Transfer equation: F(i): F(i-1)+F(i-2)
-
Initial state: We need two terms in the transfer equation to run,
- F(0) = 0
- F(1) = 1
- Return F(n)
The first type: recursion
public class Solution {
public int Fibonacci(int n) {
if(n == 0)return 0;
if(n == 1 || n == 2)return 1;
int f3 = Fibonacci(n-1)+Fibonacci(n-2);
return f3;
}
}
The second type: non-recursive
public class TestDemo1 {
public static void main(String[] args) {
//斐波那契非递归(输出第n项的值)
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
System.out.println(Fibonacci(n));
}
public static int Fibonacci(int n) {
if(n == 0)return 0;
if(n == 1 || n == 2)return 1;
int[] arr = new int[n];
arr[0] = 1;
arr[1] = 1;
for (int i = 2;i < n;i++){
arr[i] = arr[i-1]+arr[i-2];
}
return arr[n-1];
}
}