程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我需要一些帮助来调试一个小的递归函数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决我需要一些帮助来调试一个小的递归函数?

开发过程中遇到我需要一些帮助来调试一个小的递归函数的问题如何解决?下面主要结合日常开发的经验,给出你关于我需要一些帮助来调试一个小的递归函数的解决方法建议,希望对你解决我需要一些帮助来调试一个小的递归函数有所启发或帮助;

int n它将开始的数字,int m 是它将显示的倍数。 它打印出正确的倍数,但倍数不正确 命令。对于 multiples(2,5) 它会打印出 2,4,8,16,32. 我明白它为什么这样做 那是因为它被 n+n 调用。但我不知道如何正确添加 n 所以它 显示 2,6,10,12. 我试过将变量设置为 n 但它添加不正确。 任何帮助表示感谢 thNks!代码如下

<div class="Authors-block"
     th:each="letter : ${ {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'} }"
     th:with="authors=${authorsData.?[authorname.startsWith(#root.letter)]}"
     th:unless="${authorsData.?[authorname.startsWith(#root.letter)].empty}"
     >
  <h2 class="Authors-title" ID="a" th:text="${letter}" />
  <div class="Authors-letter">
    <div class="Authors-item" th:each="author: ${authors}"><a href="/authors/slug.HTML" th:text="${author.getAuthorname()}"></a>
    </div>
  </div>
</div>

解决方法

通过乘以 @H_530_5@m 并在递归调用之后进行打印,您可以按正确的顺序打印内容,而无需添加任何其他参数:

public static void multiples(int n,int m) {
   if(m > 0) {
      multiples(n,m - 1);
      System.out.print((n * m) + ",");
   }
}

如果您还想丢失虚假的尾随逗号:

public static void multiples(int n,m - 1);
      if(m > 1) {
         System.out.print("," + (n * m));
      } else {
         System.out.print(n);
      }
   }
}

另一种选择是返回生成的值。这为您提供了更大的灵活性 - 然后您可以打印它们或在您认为合适的任何后续操作中使用它们。

public static ArrayList<Integer> multiples(int n,int m) {
   if(m > 0) {
      ArrayList<Integer> result = multiples(n,m - 1);
      result.add(n * m);
      return result;
   } else {
      return new ArrayList<Integer>();
  }
}
,

您也可以发送初始值“n”作为参数。

public static void multiples(int n,int m,int increment) {
  if(m == 0) {
    return;
  } else {
    System.out.print(n + ",");
    multiples(n + increment,m - 1,increment);
  }
}
,

实际上,该方法确实做了它应该做的:打印出倍数。在您的示例中,倍数是 2、2 次 2 = 4、2 次 2 次 2 = 8、2 次 2 次 2 次 2 = 16、2 次 2 次 2 次 2 = 32。

如果你想打印出添加的内容,它可能是这样的

    public static void multiplesHelper(int n,int increment) {
      if(m == 0) {
        return;
      } else {
        System.out.print(n + ",");
        multiples(n + increment,increment);
      }
    }
    public static void multiples(int n,int m) {
      multiplesHelper(n,m,n);
    }

示例调用将是 multiples(2,6);

大佬总结

以上是大佬教程为你收集整理的我需要一些帮助来调试一个小的递归函数全部内容,希望文章能够帮你解决我需要一些帮助来调试一个小的递归函数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: