对于我的家庭作业的第一个问题,它涉及到通过使用递归的void方法打印出一串星号。打印的星号数基于2的n次方(n是该方法的参数)。
即
print(1)打印出"**“
print(2)打印出“*”等。
老实说,到目前为止我只有一件事,但它不使用递归。
public void print(int num) {
int sum = (int) Math.pow(2, num);
for (int i = 0; i < sum; i++) {
System.out.print("*");
}我已经被困了好几个小时,不知道如何去做,所以如果有人愿意帮助我,我将万分感激!
发布于 2018-03-12 14:37:48
void print(int num) {
if (num == 0) {
System.out.print("*");
} else {
print(num - 1);
print(num - 1);
}
}发布于 2018-03-12 14:32:01
你应该先阅读递归。只要确定你的终止条件是什么。然后玩一玩。
public void printUtil(int num) {
// just a util method to get the sum
int sum = (int) Math.pow(2, num);
print(sum);
}
public void print(int sum){
if(sum == 0) return; // terminating condition
System.out.print("*");
print(--sum); // function calling itself
}先读一读。如果仍有疑问,请询问!:)
https://stackoverflow.com/questions/49229250
复制相似问题