编写名为makePowerOfTwoStars的方法的定义,该方法接收非负整数n并打印由2 ^ n个星号组成的字符串。该方法不得使用任何类型的循环。
public static String makePowerOfTwoStars(int n) {
if (n == 0)
return "*";
else {
return "*" + makePowerOfTwoStars((int)(Math.pow(2,n-1) - 1)) + "*";
}
}
我已经研究了一段时间了,我无法弄清楚完成目标所需的算法。
继续研究之后,似乎该方法本身就是一个执行打印的void方法。感谢Antoniossss提供了String-returning方法的工作算法。现在我收到错误"此处不允许使用void类型"。我意识到从没有返回任何内容的方法打印内容是没有意义的,但我真的不知道如何修复它,因为调用该方法的程序不会打印。这是新代码,感谢您的帮助。
public static void printPowerOfTwoStars(int n) {
if (n == 0) {
System.out.print("*");
} else {
System.out.print(printPowerOfTwoStars(n - 1) + printPowerOfTwoStars(n - 1));
}
}
另外,我意识到方法名称已更改。调用该方法的程序显然有拼写错误。