递归二叉树类的斐波那契序列和反向

  • 本文关键字:二叉树 递归 java
  • 更新时间 :
  • 英文 :

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 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] + " ");
    }
}

也许,你可以反向遍历数组

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

在打印整数时,您可以直接在数组中反向循环。

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

最新更新