[编程题] 斐波那契数列

2、斐波那契数列

方法1: 使用迭代for循环,效率高

/**
     * 时间上可以不超时
     * int f[]={0,1,1,2,3,5,8,13,21,34...]
     */
    public static int fib2(int n) {
        if (n==0 || n==1){
            return n;
        } else {
            int val1=0;
            int val2 = 1;
            for (int i=1;i<n;i++){  //注意这里的开头结尾
                int temp = val1;    //取一个临时变量
                val1 = val2;
                val2 = (temp+val1)%1000000007;  //记得模
            }
            return val2;
        }
    }

方法2:使用递归:效率低

//时间复杂度超时
    public static int fib(int n) {
        if (n==0){
            return 0;
        }else if (n==1){
            return 1;
        }else {
            return (fib(n-1)+fib(n-2))%1000000007;
        }
    }

猜你喜欢

转载自www.cnblogs.com/jiyongjia/p/13191865.html