O(1)通项公式解法:
public class Solution { public int Fibonacci(int n) { double a = Math.sqrt(5.0); double temp1 = (1.0 + a)/2.0; double temp2 = (1.0 - a)/2.0; return (int)(1.0/a*(Math.pow(temp1, n) - Math.pow(temp2, n))); } }
O(1)通项公式解法:
public class Solution { public int Fibonacci(int n) { double a = Math.sqrt(5.0); double temp1 = (1.0 + a)/2.0; double temp2 = (1.0 - a)/2.0; return (int)(1.0/a*(Math.pow(temp1, n) - Math.pow(temp2, n))); } }