Java编写递归函数,该函数接受int:k并打印到屏幕k中的"*&引用;
java编写递归函数,该函数接受int:k并打印到屏幕k的“*” 尝试: 此代码不工作,只打印我知道问题的“*”代码 我试图解决这个问题,但不幸的是没有成功Java编写递归函数,该函数接受int:k并打印到屏幕k中的"*&引用;,java,recursion,Java,Recursion,java编写递归函数,该函数接受int:k并打印到屏幕k的“*” 尝试: 此代码不工作,只打印我知道问题的“*”代码 我试图解决这个问题,但不幸的是没有成功 Example : k = 3 console : *** 您可以在每次递归调用后附加一个星号,当k为0时,基本大小写返回一个空字符串 public static String numStarec(int k) { if(k == 0) return ""; return numStarec(k
Example :
k = 3
console : ***
您可以在每次递归调用后附加一个星号,当
k
为0
时,基本大小写返回一个空字符串
public static String numStarec(int k) {
if(k == 0) return "";
return numStarec(k-1) + "*";
}
在编写问题的解决方案之前,我认为理解递归的定义以及您希望发生的事情对您很有价值。首先,“递归是一种解决问题的方法,其中解决方案取决于同一问题的较小实例的解决方案”() 如果前面的定义仍然让您有点困惑,那么让我们看看您的问题的解决方案:
public static String numStarec(int k) {
if (k == 0) {
return "";
}
return numStarec(k-1) + "*";
}
正如定义所述,“解决问题的方法…”(在这种特定情况下,您的问题是希望在屏幕上打印字符*K次)“…解决方案取决于相同问题的较小实例的解决方案”(同一问题的这些小例子包括找出还有多少字符“*”要打印,这就是K的值)
当您为函数numStarec
提供一个特定的数字K时,它将取K并检查它是否为0。如果K==0
的计算结果为true,则返回语句将为“”
但是当K!=0
的计算结果为true时,将发生的情况是函数将返回字符“*”并继续使用K-1
的值调用自身,然后再次相应地返回
希望它能帮助您了解一点递归。第一次看时,不要关注退出条件,在外部执行
public static String numStarec(int k) {
if (k == 0) {
return "";
}
return numStarec(k-1) + "*";
}