首页 > 技术文章 > 斐波那契数列(Java)

Timesi 2019-12-02 12:58 原文

一、什么是斐波那契数列

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1,1,2,3,5,8,13,21,34,……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1,F(n)=F(n−1)+F(n−2)(n>=3,n∈N∗)

二、Java实现(输出前20项)

1.循环写法

package com.company;

class Fibonacci{
    public void output(int previous , int latter , int sum){
        for(int i = 1 ; i <= 18 ; i ++){
            sum = previous + latter;
            System.out.println("第"+(2+i)+"项是:"+sum);
            previous = latter;
            latter = sum;
        }
    }
}

public class Test {
    public static void main(String[] args) {
        int previous = 1;
        int latter = 1;
        int sum = 0;
        System.out.println("第1项是:"+previous);
        System.out.println("第2项是:"+latter);

        Fibonacci fb = new Fibonacci();
        fb.output(previous,latter,sum);
    }
}

2.递归写法

package com.company;

class Fibonacci{
    public int output(int num){
        if(num == 1 || num == 2){
            return 1;
        }else{
            return output(num-1) + output(num-2);
        }
    }
}

public class Test {
    public static void main(String[] args) {
        Fibonacci fb = new Fibonacci();
        for(int i = 1 ; i <= 20 ; i ++){
            System.out.println("第"+i+"项为:"+fb.output(i));
        }
    }
}

输出结果

第1项为:1
第2项为:1
第3项为:2
第4项为:3
第5项为:5
第6项为:8
第7项为:13
第8项为:21
第9项为:34
第10项为:55
第11项为:89
第12项为:144
第13项为:233
第14项为:377
第15项为:610
第16项为:987
第17项为:1597
第18项为:2584
第19项为:4181
第20项为:6765

推荐阅读