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

Java练习:使用递归方法打印星号三角形及其倒三角形

缪英锐
2023-03-14
问题内容

我需要打印一个三角形及其倒三角形(位于其尖端)。我设法只打印出三角形。我知道我可以轻松地使用for循环,但是我想知道如何使用递归,在我的情况下,我不知道如何同时打印三角形和倒置三角形,谢谢。

Example desired output:
*
**
***
****
****
***
**
*

我的代码:

public class Recursion1 {
    public static void main(String[] args) {
        Recursion1 me = new Recursion1();
        me.doIt();
    }

    public void doIt() {        
        nums(4);
    }

    public String nums(int counts) {
        if (counts <= 0) {
            return "";
        }

        String p = nums(counts - 1);
        p = p +"*";
        System.out.print(p);
        System.out.println();

        return p;
    }
}

我的结果:

Results:
*
**
***
****

问题答案:

您必须重新考虑问题,这可能是一种可能的解决方案:

public class Recursion1 {
private static int endValue;
private static int startValue = 1 ;

public Recursion1(int endValue){
    Recursion1.endValue = endValue;
}

public static void main(String[] args) {
    Recursion1 me = new Recursion1(4);
    me.doIt();
}

public void doIt() {        
    nums("*");
}

public String nums(String value) {
    if( startValue == endValue){
        System.out.println(value);
    }else{
        System.out.println(value);
        startValue ++;
        value = value.concat("*");
        nums(value);
        value = value.substring(1);
        System.out.println(value);
    }
    return value;
}}


 类似资料:
  • 问题内容: class upsidedown { 到目前为止,我的代码打印出一个规则的,右侧向上的三角形。我如何使其倒挂? 问题答案: 非常简单地。使用相同的逻辑,只需反转打印行的顺序即可。 另外,请遵循Java命名约定。

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

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

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

  • 问题内容: 我需要编写一个称为like的方法。我们需要创建一个迭代方法和一个递归方法(没有任何迭代)。输出需要如下所示: 这段代码可用于迭代,但是我无法使其适应递归。 我应该注意,您不能使用任何类级别的变量或任何外部方法。 问题答案: 请注意,在迭代方法中,您有两个计数器:第一个是您所处的行,第二个是您所处的行的位置。您可以创建一个采用两个参数并将其用作嵌套计数器和的递归函数。在递减x直到其达到0

  • 问题内容: 我正在尝试制作一个程序,该程序需要用户输入诸如三角形应该多长时间及其方向。我的问题是,在我运行该程序后,它会继续向程序中添加更多的数字。 例如 我的代码: 问题答案: 你有。对于while循环的每个循环,这将继续将输入添加到变量中。您可能想要的只是。 要使其在每次迭代中再次打印出您的第一个提示,只需将您的调用放入while循环内即可。(它也必须先出现,以便 在 输入输入 之前 显示提示