斐波那契数列

来源:互联网 发布:linux打印tomcat日志 编辑:程序博客网 时间:2024/05/10 20:29

题目描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。

实现如下:

package cn.yzx.nowcoder;/** * 题目描述 * 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 * F(n)=F(n-1)+F(n-2)(n≥2,n∈N*) * 特别指出:第0项是0,第1项是第一个1。 * @author Administrator * */public class Fibonacci {    public static void main(String[] args) {        int n=20;        int res = new Fibonacci().Fibonacci(n);        System.out.println(res);    }    //递归实现,在牛客网上OJ不过    public int Fibonacci2(int n) {        if(n == 0)            return 0;        else if(n == 1)            return 1;        else            return Fibonacci(n-1)+Fibonacci(n-2);    }    //用非递归    public int Fibonacci(int n) {        int pre = 1;        int prePre = 1;        int res = 0;        if(n == 0)            return 0;        else if(n == 1 || n == 2)            return 1;        else{            for(int i=3;i<=n;i++){                res = pre + prePre;                prePre = pre;                pre = res;            }            return res;        }    }    //动态规划实现    public int Fibonacci1(int n) {        int f = 0, g = 1;        while(n-- >0) {            g += f;            f = g - f;        }        return f;    }}
0 0
原创粉丝点击