当前位置: 首页 > 面试题库 >

仅使用递归从星星中创建三角形

魏刚豪
2023-03-14
问题内容

我需要编写一个称为like的方法printTriangle(5);。我们需要创建一个迭代方法和一个递归方法(没有任何迭代)。输出需要如下所示:

*
**
***
****
*****

这段代码可用于迭代,但是我无法使其适应递归。

public void printTriangle (int count) {
    int line = 1;
    while(line <= count) {
        for(int x = 1; x <= line; x++) {
            System.out.print("*");
        }
        System.out.print("\n");
        line++;
    }
}

我应该注意,您不能使用任何类级别的变量或任何外部方法。


问题答案:

请注意,在迭代方法中,您有两个计数器:第一个是您所处的行line,第二个是您所处的行的位置x。您可以创建一个采用两个参数并将其用作嵌套计数器y和的递归函数x。在递减x直到其达到0的位置,然后递减y并设置x
= y,直到x和y均为0。

您可能还会注意到,三角形中的每条连续线都是前一行加一颗星。如果您的递归函数为上一行返回一串星号,则下一行始终是该字符串加上一个星号。因此,您的代码将类似于:

public String printTriangle (int count) {
    if( count <= 0 ) return "";

    String p = printTriangle(count - 1);
    p = p + "*";
    System.out.println(p);

    return p;
 }


 类似资料:
  • 问题内容: 是否可以在SQL中像下面这样创建一个星形的三角形。我知道可以用任何其他编程语言(如C,C ++,Java)轻松完成此操作,但想知道仅使用SQL还是PL是否真的可能/ SQL。我尝试在Oracle中使用双表对其进行处理,但无法通过它。 如果有人知道,有人可以请大家介绍一下。 问题答案: 最简单的方法就是这样。特别是如果要构建等边三角形而不是直角三角形,则可以变得更加复杂。

  • 问题内容: 我需要打印一个三角形及其倒三角形(位于其尖端)。我设法只打印出三角形。我知道我可以轻松地使用for循环,但是我想知道如何使用递归,在我的情况下,我不知道如何同时打印三角形和倒置三角形,谢谢。 我的代码: 我的结果: 问题答案: 您必须重新考虑问题,这可能是一种可能的解决方案:

  • 问题内容: 我想尝试一个直角三角形的星号。但是我只得到以下 输出:( 我不能在这里放置星号) 我想要的是这样的: 这是我编写的代码: 任何想法分享,我们将不胜感激。我是Java新手。谢谢。 问题答案: 您的代码从不打印任何空格,这应该是一个问题。 您可以使用以下简单方法: 逻辑很简单:您的字符串带有两个空格和三个at符号。输出的第一行必须是两个空格和一个at符号,因此这是字符串的前三个字符。第二行

  • 问题内容: 我正在尝试使用嵌套的for循环向用户询问整数,然后程序将输出一个倒置的倒置三角形,其底部带有星号,然后逐渐减小。应该看起来像这样: 我有的代码: 输出此: 我不太确定如何更改我的for循环来完成这项工作,并且我已经尝试了一段时间,因此非常感谢您的帮助。 问题答案: 我的看法是这样的: 这是家庭作业吗(嵌套循环是必需的)?提示:可以轻松地将运算符替换为循环。

  • 我正在做一个个人项目,我需要从这样的输入字符串中提取实际的注释。 案例1: 输出: 案例2: 输出: 案例3: 输出: 案例4: 输出: 我在Java工作,我试图替换和使用简单的方法,如,但由于注释可以以不同的方式格式化如上所述,替换方法似乎不是实现此目的的可行方法。如何使用正则表达式实现上述输出? 这是我正在使用的测试注释文件。

  • 本文向大家介绍使用css画出一个五角星相关面试题,主要包含被问及使用css画出一个五角星时的应答技巧和注意事项,需要的朋友参考一下