• 实现斐波那契数列算法-递归和非递归


    斐波那契数列:

            斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........

    这个数列从第3项开始,每一项都等于前两项之和。

    代码:

    以下是用java代码实现的斐波那契数列的递归与非递归算法

    package com.bug1;
    public class Main {
        public static void main(String[] args) {
            System.out.println("递归实现斐波那契数列");
            System.out.println(fib(4));
            System.out.println("非递归实现斐波那契数列");
            System.out.println(fib2(4));
        }
        /*
         * n=    1 2 3 4 5 6 7 
         * sum=  1 1 2 3 5 8 
         * 
         * */
        //递归实现斐波那契数列
        public static int fib(int n) {
            if(n<=2)return 1;
            return fib(n-1)+fib(n-2);        
        }
        //非递归实现斐波那契数列
    public static int fib2(int n) {
        if(n<=2)return 1;
        int first=1;
        int second=1;
        int sum=0;
        while(n>2) {
        sum=first+second;
        first=second;
        second=sum;
        n--;
        }    
        return second;
    }    
    }

    运行结果:

  • 相关阅读:
    拓扑编号
    奇怪的梦境
    奖金
    最优布线问题
    亲戚
    最小花费
    Dijkstra算法 最短路径 (部分)
    Floyed算法 最短路径
    P1164 小A点菜(背包方案数模板)
    P1049 装箱问题
  • 原文地址:https://www.cnblogs.com/it1997/p/12066127.html
Copyright © 2020-2023  润新知