java 斐波那契

參考斐波納契函數(shù)java實(shí)現(xiàn)的誤區(qū)--謹(jǐn)慎使用遞歸
最近在研究算法,遇到了斐波納契函數(shù),即1,2,3,5,8,13,21,34,55,89,...,通用式為:f(n)=f(n-1)+f(n-2).
一般的程序員想了想,擼起袖子,開工.

public static int fib(int n){
        if(n<=2){
            return 1;
        }else{
            return fib(n-1)+fib(n-2);
        }
    }

高手的程序員想了又想,慎重的寫下了:

public static int fibonacci(int n) {

        if (n <= 2) {
            return 1;
        }

        int result = 0;
        int first = 0, second = 1;

        for (int i = 1; i < n; i++) {
            result = first + second;
            first = second;
            second = result;
        }

        return result;
    }

前者使用的是遞歸,后者使用的是簡(jiǎn)單的循環(huán).

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容