• 剑指Offer(书):斐波那契数列


    题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39

    分析:第一种方法:递归,45时,时间为5s,50时,我就等不及了。原因是重复调用问题,如下面的Fibonacci方法。第二种方法:使用一个变量记录之前的和的值,如下面的Fibonacci1方法。

    public class Solution10 {
    
        public int Fibonacci(int n) {
            if(n<=0){
                return 0;
            }
            if(n==1){
                return 1;
           }
           return Fibonacci(n-1)+Fibonacci(n-2);
        }
        public int Fibonacci1(int n) {
            if(n<0)return 0;
            int pre = 0;
            int next = 1;
            while(n-->1){
                next = pre+next;
                pre = next-pre;
            }
            return next;
        }
    
        public static void main(String[] args) {
            Solution10 solution10 = new Solution10();
            long start= System.nanoTime();
    //        System.out.println(solution10.Fibonacci(10));
            System.out.println(solution10.Fibonacci1(100));
            System.out.print((System.nanoTime()-start)/1000000000.0);
        }
    }
  • 相关阅读:
    Android Studio:layout-sw600dp文件夹中创建activity_main.xml
    Android Studio提示忽略大小写
    学习进度条-3
    二维数组
    人月神话阅读笔记01
    作业-数组
    学习进度条-2
    周四测试
    家庭家长本-微信小程序
    第一周开课博客园
  • 原文地址:https://www.cnblogs.com/liter7/p/9426282.html
Copyright © 2020-2023  润新知