我有一个递归 ABC 生成器方法。public static void ABCgenerator(String from, int letters) { if (from.length() == letters) { System.out.println(from); } else { ABCgenerator(from + "a", letters); ABCgenerator(from + "b", letters); ABCgenerator(from + "c", letters); } }当我使用这些参数运行它时,ABCgenerator("a", 3);它给了我:aaaaabaacabaabbabcacaacbacc相反,我想在运行时获得以下信息ABCgenerator("a", 3);:aaaaaaabaaacaabaaabbaabcaacaaacbaaccabaaabababacabbaabbbabbcabcaabcbabccacaaacabacacacbaacbbacbcaccaaccbaccc问题是我只能更改方法的 body。输入参数的类型和数量必须保持不变,1 String + 1 int。该方法必须保持递归。我怎样才能做到这一点?
1 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
public static void ABCgenerator(String from, int lettersLeft) {
lettersLeft--;
if (lettersLeft + 1 == 0) {
System.out.println(from);
} else {
ABCgenerator(from + "a", lettersLeft);
ABCgenerator(from + "b", lettersLeft);
ABCgenerator(from + "c", lettersLeft);
}
}
}
这是正确的解决方案。不是每次都计算输入字符串的整个长度,我们只是计算函数仍然需要生成多少个字母,当它达到零时,“最后一个”实例不会调用其他实例,只会打印结果。我想要一些可以生成具有给定长度和固定前缀的字母 abc 的所有组合的东西,就像那样。它给出了示例中提供的所需输出。
添加回答
举报
0/150
提交
取消