一种递归指数函数,可以打印2 ^ n个星号,例如如果n = 3,则显示********

时间:2017-01-26 02:27:01

标签: java recursion

编写名为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));
    }
}

另外,我意识到方法名称已更改。调用该方法的程序显然有拼写错误。

0 个答案:

没有答案