zoukankan      html  css  js  c++  java
  • 实现斐波那契数列算法-递归和非递归

    斐波那契数列:

            斐波那契数列指的是这样一个数列 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;
    }    
    }

    运行结果:

  • 相关阅读:
    NET导入Excel带进度条。
    直接拿来用,最火的.NET开源项目(beta)
    Darren Ji
    接口和抽象类有什么区别
    wpf博客
    jQuery动态改变图片显示大小(修改版)
    S32K的make过程
    TortoiseGit安装及使用
    Python:tkinter
    GCC学习笔记(二):编译选项
  • 原文地址:https://www.cnblogs.com/it1997/p/12066127.html
Copyright © 2011-2022 走看看