求斐波那契数列第N个数
斐波那契数列的数学公式:
- F(0)=0
- F(1)=1
- F(n)=F(n-1)+F(n-2) {n>=2}
后一个数等于它前两个数的和。
前13个为:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
public class Fibonacci {
public static int fibonacci(int n) { if (n <= 2) { return 1; } else { return fibonacci(n - 1) + fibonacci(n - 2); } }
public static int fibonacciLoop(int n) { if (n <= 2) { return 1; } int n1 = 1, n2 = 1, sn = 0; for (int i = 0; i < n - 2; i++) { sn = n1 + n2; n1 = n2; n2 = sn; } return sn; }
public static void main(String[] args) { System.out.println(fibonacci(5)); System.out.println(fibonacciLoop(5)); }
}
|