首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对void print方法使用递归

对void print方法使用递归
EN

Stack Overflow用户
提问于 2018-03-12 14:26:28
回答 2查看 309关注 0票数 0

对于我的家庭作业的第一个问题,它涉及到通过使用递归的void方法打印出一串星号。打印的星号数基于2的n次方(n是该方法的参数)。

print(1)打印出"**“

print(2)打印出“*”等。

老实说,到目前为止我只有一件事,但它不使用递归。

代码语言:javascript
复制
public void print(int num) {
int sum = (int) Math.pow(2, num);
for (int i = 0; i < sum; i++) {
    System.out.print("*");
}

我已经被困了好几个小时,不知道如何去做,所以如果有人愿意帮助我,我将万分感激!

EN

回答 2

Stack Overflow用户

发布于 2018-03-12 14:37:48

代码语言:javascript
复制
void print(int num) {
    if (num == 0) {
        System.out.print("*");
    } else {
        print(num - 1);
        print(num - 1);
    }
}
票数 1
EN

Stack Overflow用户

发布于 2018-03-12 14:32:01

你应该先阅读递归。只要确定你的终止条件是什么。然后玩一玩。

代码语言:javascript
复制
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
}

先读一读。如果仍有疑问,请询问!:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49229250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档