2015-07-12 72 views
-2
public class MyFibonacci { 

    public static void main(String a[]){ 

     int febCount = 15; 
     int[] feb = new int[febCount]; 
     feb[0] = 0; 
     feb[1] = 1; 
     for(int i=2; i < febCount; i++){ 
      feb[i] = feb[i-1] + feb[i-2]; 
     } 

     for(int i=0; i< febCount; i++){ 
       System.out.print(feb[i] + " "); 
     } 
    } 
} 

我需要添加什麼以便我可以反轉印刷的fiboonaci系列?斐波那契序列和反向的遞歸二叉樹類

+0

你是什麼意思的「反向」? –

+2

如果它的緊急是因爲你的作業到期了,那麼我建議你開始編碼它們。我們將在特定問題上提供幫助 –

+0

打印數字時,您不能從數組的最後到數組的開頭循環嗎? – SamTebbs33

回答

0

這是序列你

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 

要恢復它,你可以從最後兩個數字(377和233),然後開始計算下的人減去而不是加入

377, 233, (377-233), ... 
377, 233, 144, (233-144), ... 

像這樣

Main() { 
    int febCount = 15; 
    int[] feb = new int[febCount]; 
    feb[0] = 0; 
    feb[1] = 1; 
    for(int i=2; i < febCount; i++){ 
     feb[i] = feb[i-1] + feb[i-2]; 
    } 

    for(int i=0; i< febCount; i++){ 
      System.out.print(feb[i] + " "); 
    } 

    System.out.println(); 
    feb[0] = feb[14]; 
    feb[1] = feb[13]; 
    for(int i=2; i < febCount; i++){ 
     feb[i] = feb[i-2] - feb[i-1]; 
    } 

    for(int i=0; i< febCount; i++){ 
      System.out.print(feb[i] + " "); 
    } 
} 
+0

或者您可以在打印時向後循環陣列,這會更簡單。 – SamTebbs33

+0

或者您可以打印(「377 233 144 89 55 34 21 13 8 5 3 2 1 1 0」);但很顯然,這不是他尋求的解決方案 –

+0

@ user2520118或不是? –

0

也許,你可以遍歷向後

for(int i = febCount - 1; i >= 0; i--) { 
    System.out.print(feb[i]); 
    if (i > 0) { 
     System.out.print(" "); 
    } 
} 
System.out.println(); 
0

你可以只通過數組循環打印整數向後當陣列。

for(int i = febCount - 1; i >= 0; i--){ 
    System.out.print(feb[i] + " "); 
}