題目描述
大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項爲0)。
n<=39
package RecursionAndLoop;
/*
題目描述
大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項爲0)。
f(n) = { 0 n=0,
1 n=1,
f(n)=f(n-1) + f(n-2) n>1
}
n<=39
*/
public class Fibonacci_07 {
public int Fibonacci_07 (int n) {
if(n<=1){
return n;
}
return Fibonacci_07(n-1) + Fibonacci_07(n-2);
}
public int Fibonacci (int n) {
if (n < 2) {
return n;
}
// mid作爲中間變量存起來
int end = 0;
int start = 1;
// i理解爲n-1
// i end start
// 0 0 1
// 1 1 0
// 2 1 1
// 3 2 1
// 4 3 2
// 5 5 3
for(int i = 0; i < n; i++) {
int tmp = end + start;
start = end;
end = tmp;
}
return end;
}
//推薦方式
public int Fibonacci1 (int n) {
if (n < 2) {
return n;
}
int sum = 1;
int one = 0;
for(int i = 2; i <= n; i++) {
sum = sum + one;
one = sum - one;
}
return sum;
}
public static void main(String[] args) {
Fibonacci_07 Fibonacci_07 = new Fibonacci_07();
//0 1 1 2 3 5 8
int n = Fibonacci_07.Fibonacci(5);
System.out.println(n);
}
}