斐波那契数列的实现(递归 非递归)

最近学习数据结构的时候,接触到了用递归实现斐波那契数列,在这里我就做个记录吧!

首先我们要知道什么是斐波那契数列。 斐波那契数列就是 0, 1, 1  ,2  ,3  ,5  ,8 , 13 这样的数列(这样的数列有什么规律,我相信大家一眼就能看出来)

这里介绍2种方法。

1.非递归

//非递归方法实现
    public static int feibounaqi(int i) {
        if (i==1) {
            return 0;
        }
        if (i==2) {
            return 1;
        }
        int f1=0; //第一数
        int f2=1; //第二数
        int c=0;  //返回结果数
        
        //这个循环只要i>=3就会执行
        for (int j =3;j<=i; j++) {
            c=f1+f2;
            f1=f2;
            f2=c;
        }
        return c;        
    }


2.用递归实现

public static int feibounaqi(int i) {
        if (i==1 || i==2) {  //因为1和2 都是1 所以返回1
            return 1;
        }else {
            return feibounaqi(i-2)+feibounaqi(i-1);  //否则用递归求值
        }
    }


最后结束我想送给自己一句话: 好运即在前方,坚持再坚持!

 

posted @ 2019-07-16 15:56  赖伟春  阅读(1523)  评论(0编辑  收藏  举报