Java 编写递归函数,接受 int : k 并打印到屏幕 k 的 "*"



java编写递归函数,接受int:k并打印到屏幕k的">

尝试:

public static String numStarec(int k) { 
String ans = "";
if (k == 0) {
ans += "*";
return ans;
}
return numStarec(k-1);
}

这个代码不工作,只为我打印"*"我知道的问题

我试图解决这个问题,但不幸的是,没有成功

Example : 
k = 3
console : ***

您可以在每次递归调用后附加一个星号,当k0时,基本情况返回一个空字符串。

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时,将发生的是函数将返回字符"0"*"并继续使用CCD_ 7的值来调用它自己并且再次相应地返回。

希望它能帮助你理解一点递归。

最新更新