标签:
题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
分析
改进方法:时间复杂度O(n)
public class Test { public static void main(String[] args) { System.out.println(Test.Fibonacci(36)); } /** * 首先根据f(0)和f(1)计算f(2),再根据f(1)和f(2)计算f(3)....依次类推计算f(n). * @param n 第n项 * @return */ public static int Fibonacci(int n) { // 斐波那契前两项 int[] result = {0, 1}; if(n < 2) { return result[n]; } int fibOne = 0; // 记录第n-2的Fibonacci数的值 int fibTwo = 1; // 记录第n-1的Fibonacci数的值 int fibN = 0; // 记录第n的Fibonacci数的值 for(int i=2; i<=n; i++) { fibN = fibOne + fibTwo; fibOne = fibTwo; fibTwo = fibN; } return fibN; } }
标签:
原文地址:http://www.cnblogs.com/zywu/p/5766470.html