java程式問題

請問一下java如果要定義一個遞迴函數如下
f(0)=1
f(i)=1
f(n)=f(n-1)+f(n-2),if(n>1)
那f(5)=???
請問各位老大因為初學java想請問各位老大這段題目要如何用java寫出來呢∼
麻煩各位老大指導一下∼
  • juniorGuru
    juniorGuru
    好久沒寫這麼low-level的程式...

    int  result[]  =  new  int[5];
    for(int  i  =  0;  i  <  result.length;  i++){
          if(i>1)
              result[i]=result[i-1]+result[i-2];
          else
              result[i]  =  1;
    }
    System.out.println("output  =  "  +  result[5]);

    //output=  8
  • elivs
    elivs
    對不起啦∼因為我是初學者咩∼
  • 比  low-level  稍好一點的

    int  fibonacci(int  input)  {

        if(input  >  1)
            return  fibonacci(input-1)  +  fibonacci(input-2);
        else
            return  1;
    }
  • juniorGuru
    juniorGuru
    oops~ 
    突然發現我有寫錯
    print  result[5]  會產生error,  out  of  bound
    因為開頭只declare  array  as  5  elements,  所以index只能從0~4,  要得到f(5)的value,  要declare  array  space  =  6,  這樣才能得到value  of  the  5th  element...
  • elivs
    elivs
    謝謝你們的幫忙∼
    讓我能來學習你們的寫法∼
    謝謝∼
回應...