題目:
Java代碼如下:
package demo;
public class TestFibonacci {
public static long fibonacci(int n) {
if(n <= 0) {
return 0;
}
if(n == 1) {
return 1;
}
// 記錄第n-2個Fibonacci數(shù)的值
long prePre = 0;
// 記錄第n-1個Fibonacci數(shù)的值
long pre = 1;
// 記錄第n個Fibonacci數(shù)的值
long current = 1;
/**
* 求解第n個Fibonacci數(shù)的值
*/
for(int i = 2; i <= n; i++) {
// 第i個Fibonacci數(shù)的值
current = prePre + pre;
// 更新結(jié)果:原先記錄第i-2個數(shù),現(xiàn)在記錄第i-1個數(shù)
prePre = pre;
// 更新結(jié)果:原先記錄第i-1個數(shù),現(xiàn)在記錄第i個數(shù)
pre = current;
}
return current;
}
public static void main(String[] args) {
System.out.println(fibonacci(0));
System.out.println(fibonacci(1));
System.out.println(fibonacci(2));
System.out.println(fibonacci(3));
System.out.println(fibonacci(5));
System.out.println(fibonacci(10));
System.out.println(fibonacci(40));
System.out.println(fibonacci(50));
System.out.println(fibonacci(100));
}
}

運(yùn)行結(jié)果
