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

java编写递归函数,该函数接受int:k并打印到屏幕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) + "*";
}