2016-02-12 43 views
4

我遇到了我的else語句中的代碼有問題。我無法弄清楚如何遞歸地返回列表中的2個調整項。我將不勝感激任何幫助。斐波那契遞歸問題,不能返回2個元素

public static int[] fibaux(int n) { 

     if (n == 1) { 
     return new int[] {1, 0}; 
     } 
     else { 
     int[] array = new int[2]; 
     list[] = {fibaux(n - 1)}; 


     return //array[0] + array[1], array[1]; 
     } 
} 
+1

'return'返回原始類型,數組,CALSS等只有一個值.. – Satya

+0

您的問題給出的答案已經... 看看你的回報在'if(n == 1)'中 – Mischa

回答

1

在Java中不允許多值返回,即不能使用return返回2個值。你可以簡單地返回一個包含array這樣兩個值:

return new int[] {num1, num2}; 
1

我認爲你在尋找什麼,不涉及做遞歸作爲回報的一部分。你想要做遞歸,然後返回一個數組,這是兩個元素的添加,以及你想要保留的一個元素。

我想你想:

public static int[] fibaux(int n) { 
     if (n == 1) { 
     return new int[] {1, 0}; 
     } 
     else { 
     int[] array = fibaux(n - 1); 
     return new int[] {array[0]+array[1], array[0]}; 
     } 
}