剑指offer面试题9 斐波那契数列

来源:互联网 发布:淘宝飞跃是不是正品 编辑:程序博客网 时间:2024/05/16 03:16

解题思路:传统的利用递归求斐波那契数列的第n项,遇到挑剔的面试官,可能他们不会喜欢,因为这种方法中存在比较多的重复计算,当n较大时,会严重影响算法的效率,因此采用其他思路。更简单的方法是从下往上计算,首先根据f(0)和f(1)算出f(2),设计三个局部变量first和last和sum,每一次将first+last的值赋给sum,然后将last的值作为下次计算的first,sum的值作为下次计算的last,直到循环到n为止。

public int Fibonacci(int n) {int first = 0;int last = 1;int i = 1;int sum = 0;while (i < n) {sum = first + last;//代表下一步的firstfirst = last;//代表下一步的lastlast = sum;i++;}return sum;}