2015-10-05 40 views
-2
public class Fibannoci { 


    static int fibo(int fir,int sec){ 
     int res=0; 

     int i=0; 
     while(i<10){ 

      res=fir+sec; 
      i++; 
      fibo(sec,res); 
     } 


     return res; 
    } 



    public static void main(String[] args) { 
     // TODO Auto-generated method stub 


     System.out.println(fibo(1,1)); 

    } 

} 

這是我的斐波那契程序。我正在嘗試打印第10位的號碼。我不想在網上看到別人的代碼,並做。我想嘗試自己並改進這些代碼,以便理解。請告訴我,我應該怎麼修改這個這樣,我得到的FIBO系列的首款10號java中的斐波那契程序

+1

如果你不想看到它,我該如何向你展示你缺少的東西? –

+2

目前還不清楚你在問什麼。你期望你的代碼做什麼?你爲什麼有這些期望?你想要代碼做什麼?爲什麼不這樣做?你的調試揭示了什麼? –

+0

使用System.out.println查看代碼中發生了什麼 – user2182349

回答

0

這裏有一些問題解決:

  • 打印語句採用一個單值。這意味着您的fibo方法需要返回一個數字列表,而不是一個int。嘗試返回List<Integer>

  • 您正在以遞歸方式呼叫fibo,但無法執行呼叫的結果。

  • 如果您想返回固定數量的元素,那麼沒有太多理由遞歸地調用它。在這種情況下迭代可能更簡單。

  • 習慣使用更好的變量名稱。對於現代的IDE,沒有理由使用像'sec'這樣的縮寫,這些縮寫是模糊的,很難讓讀者立即理解。

0

對於你的程序,你沒有第一或第二需要一個說法,你只需要一個變量n有你想要的斐波那契序列重複的次數,那麼你應該只是遞歸調用該方法,有最終案例爲if (n==0) return 0;if (n==1) return 1;代碼如下,如果您想查看。希望這可以幫助!

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