这是作业。我得到了逻辑,但我卡在了代码上。我已经用正常的方式完成了它,需要1周的时间来获取代码。我需要在Java中使用递归方式重复字符串。 这是我的代码:
static String repeatString (final int n, final String[] syllables, final String currentWord) {
if (n == 0) {
System.out.println(currentWord);
} else {
for (int i = 0; i < syllables.length; i++) {
repeatString(n - 1, syllables, currentWord + syllables[i]);
}
}
return "";
}
如果我在主要方法中调用
String[] str = {"a", "b"};
repeatString(1, str, " ");
然后我得到输出(a,b)如果我改为
repeatString(2,str," ");
然后我得到输出(aa,ab,ba,bb)如果我改为
repeatString(3,str," ");
然后我得到输出(aaa,aab,aba,abb,baa,bab,bba,bbb)等等。 所以基本上它就像是2的幂。如果n = 1,我得到2,如果n = 3,我得到8,依此类推。 如果有人能帮助我以递归方式获取此代码,我将不胜感激。
非常感谢任何帮助。
答案 0 :(得分:1)
你在那里的方法已经递归了。递归并不意味着它应该没有for循环。廉价单词中的递归方法意味着该方法会调用自己,这是你自己所做的。