【剑指Offer 9】斐波那契数列

题目:


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数的值
        long prePre = 0;
        // 记录第n-1个Fibonacci数的值
        long pre = 1;
        // 记录第n个Fibonacci数的值
        long current = 1;
        /**
         * 求解第n个Fibonacci数的值
         */
        for(int i = 2; i <= n; i++) {
            // 第i个Fibonacci数的值
            current = prePre + pre;
            // 更新结果:原先记录第i-2个数,现在记录第i-1个数
            prePre = pre;
            // 更新结果:原先记录第i-1个数,现在记录第i个数
            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));
    }
}
运行结果

来源:http://blog.csdn.net/derrantcm/article/details/45476095

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容