【问题标题】:Fibonacci Recursion issue, can't return 2 elements斐波那契递归问题,无法返回 2 个元素
【发布时间】:2016-05-23 05:15:18
【问题描述】:

我的 else 语句中的代码有问题。我不知道如何使它递归地返回列表中的 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];
      }
 }

【问题讨论】:

  • return 只返回一个类型为primitive、array、calss等的值。
  • 你已经在问题中给出了答案......看看你在if (n == 1)的回报

标签: java arrays recursion


【解决方案1】:

Java 中不允许多值返回,即不能使用 return 返回 2 个值。您可以简单地返回一个包含两个值的array,如下所示:

return new int[] {num1, num2};

【讨论】:

    【解决方案2】:

    我认为您正在寻找的内容不涉及将递归作为返回的一部分。您想要进行递归,然后返回一个数组,该数组是两个元素的加法,以及您要保留的一个元素。

    我想你想要:

    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]};
          }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-07-05
      • 2010-12-03
      • 1970-01-01
      • 2014-04-02
      • 1970-01-01
      • 2017-11-18
      • 2014-01-08
      • 2011-12-14
      相关资源
      最近更新 更多