1. 程式人生 > >隨筆-求斐波那契第n項(遞迴/非遞迴)

隨筆-求斐波那契第n項(遞迴/非遞迴)

題目:

大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。
n<=39

思路:第N項為n-1 + n-2 和;

遞迴:

public class Solution {
    public int Fibonacci(int n) {
         if(n==0){
             return 0;
         }else if(n==1){
             return 1;
         }
         return Fibonacci(n-1)+Fibonacci(n-2);
    }
}

非遞迴:

public class Solution {
    public int Fibonacci(int n) {
         if(n==0){
             return 0;
         }else if(n==1){
             return 1;
         }
         int n1=0;
         int n2=1;
        for(int i=2;i<=n;i++){
            int tmp=n1+n2;
            n1=n2;
            n2=tmp;
        }
        return n2;
    }
}