码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer 07斐波那契数列

时间:2018-07-31 22:05:41      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:rgs   offer   code   stat   static   solution   fibonacci   版本   long   

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

java版本:

public class Solution {

    public static void main(String[] args) {
        long startTime=System.currentTimeMillis();
        System.out.println("第39项是:"+Fibonacci(39));
        long endTime = System.currentTimeMillis(); 
        System.out.println("程序运行的时间 :"+(endTime-startTime)+"ms");
        // TODO Auto-generated method stub

    }
    /*采用循环,存取中间项。速度快*/
    /*public static int Fibonacci(int n) {
        int a=1,b=1,c=0;
        if(n<0){
            return 0;
        }else if(n==1||n==2){
            return 1;
        }else{
            for(int i=3;i<=n;i++){
                c=a+b;
                b=a;
                a=c;
            }
            return c;
        }
    }*/
    /*递归,简单,但是速度慢,数字越大,运行时间越长*/
    public static int Fibonacci(int n){
                 if(n==0)
                     return 0;
                 if(n==1)
                    return 1;
                 return Fibonacci(n-1)+Fibonacci(n-2);
    }


}

js版本:

function Fibonacci(n)
{
        if(n==0){
            return 0;
        }
       if(n==1||n==2){
            return 1;
        }
        var a=1,b=1,c=0;
        for(var i=3;i<=n;i++){
             c=a+b;
             b=a;
             a=c;
        }
    return c;// write code here
}

总结:核心思想就是c=a+b;b=a;a=c;这三项。每一次先确定c的值,然后把上一次a的值赋值给b,再把本次的c的值赋值给a,每一次for循环向后走一次。

 

剑指offer 07斐波那契数列

标签:rgs   offer   code   stat   static   solution   fibonacci   版本   long   

原文地址:https://www.cnblogs.com/yyfyl/p/9397796.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!