递归之斐波那契数列

感觉递归主要就是两步,首先找规律,最后找出口。
这里以斐波拉契数列为例,通过递归的方法求斐波那契数列。

//数列规则为0,1,2,3,5,8,13,21、、、、
//可以分析数列看出 fb(n) = fb(n-1) + fb(n-2) 的规律
//然后我们找出口 当n=1时 返回0 当n=2时 返回1 OK enough!
fb(n){
    if(n==1){
        return 0;
    }
    if(n==2){
        return 1;
    }
    return fb(n-1) + fb(n-2) ;
}

ok~ 完美解决,当然这只是一个典型的例子。其实很多时候都不建议各位小伙伴在自己的项目中大量使用递归算法,递归唯一的好处就是可以减少代码,使代码看起来简洁,但是其最大的弊端就是降低了性能以及效率,而且,当调用的层级过多时,就会超出栈的容量,从而导致调用栈溢出,也就是内存溢出…..大家视情况而定 这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_22896159/article/details/81744257