gpt4 book ai didi

java - Java中递归查找ABC的组合

转载 作者:行者123 更新时间:2023-12-01 23:03:35 25 4
gpt4 key购买 nike

我正在尝试编写一个程序来打印可以用 ABC 制作的所有图案。我允许用户确定字符应该有多长,但我在运行程序时遇到问题,因为我收到错误并且我不知道出了什么问题..

private static int userinput;

public static void main(String[] args)
{
Scanner input = new Scanner(System.in);

System.out.println("Enter the maximum number of characters");
userinput = input.nextInt();
combos();
}

public static void combos()
{
combos("");
}

private static void combos(String counter)
{
if (counter.length() == userinput) //base case
System.out.println(counter);
else //recursive case
combos(counter + "A");
combos(counter + "B");
combos(counter + "C");
}

最佳答案

正如流氓提到的,你的区 block :

else //recursive case
combos(counter + "A");
combos(counter + "B");
combos(counter + "C");

... 只会在 else 语句的上下文中执行 combos(counter + "A");

无论您的 if 条件如何,都将执行以下递归语句(“B”和“C”)。

这可能会导致流量控制出现故障,从而导致 StackOverflowError

添加方括号将您的 else 语句括起来:

else {//recursive case
combos(counter + "A");
combos(counter + "B");
combos(counter + "C");
}

关于java - Java中递归查找ABC的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23161248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com