欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

斐波那契数列(Java)

程序员文章站 2022-04-10 23:34:46
一、什么是斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1,1,2,3,5,8,13,21,34,……1,1,2,3,5,8 ......

一、什么是斐波那契数列

斐波那契数列(fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(leonardoda fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1,1,2,3,5,8,13,21,34,……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