使用递归方式和非递归方式求斐波那契数

Posted 误入IT界的农民工

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用递归方式和非递归方式求斐波那契数相关的知识,希望对你有一定的参考价值。

/**
     * 非递归斐波那契数列
     * @param args
     */
    
    public static int getFieibolaLie(int number) {
    	int data = 0;
    	int n = 1;
    	int m = 1;
    	if (number <= 0) {
    		return -1;
    	}
    	if (number == 1 || number == 2) {
    		return 1;
    	}
    	
    	while (number >= 2) {
    	    data += n;
    		n = m;
    		m = data;
    		number--;
    	}
    	return data;
    }
    /**
     * 递归斐波那契数列
     * @param n
     * @return
     */
    public static int getFeiboLa(int n) {
    	if (n ==1 || n == 2) {
    		return 1;
    	}
    	return getFeiboLa(n - 1) + getFeiboLa(n - 2);
    }
    

  

以上是关于使用递归方式和非递归方式求斐波那契数的主要内容,如果未能解决你的问题,请参考以下文章

编写一递归函数求斐波那契数列的前40项

求斐波那契数列的第n个数(递归非递归)

求斐波那契数的python语言实现---递归和迭代

递归求斐波那契数列

python递归求斐波那契数列前10项

用递归和非递归方法求解斐波那契数列