gpt4 book ai didi

java - 在java中打印一个横向三角形

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:00 25 4
gpt4 key购买 nike

我正在尝试在java中打印一个横向三角形。如果用户输入 5,则输出应为:

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

如果用户输入6,输出应该是:

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

我已经让它适用于用户输入 5、3 或 1 时的情况,但我的代码似乎仅适用于这三种情况。我想知道是否有人可以帮助我让我的代码适用于更多情况。这是:

public void printArrow( int n )
{ int asterisks = 1;
for ( int i = 0; i <= n/2; i++ )
{
for ( int j = i; j < asterisks; j++ )
{

System.out.print( "*" );

}
asterisks += 3;
System.out.println();
}


asterisks = asterisks / 2 - 2;
for ( int i = 0; i < n/2; i++ )
{
for ( int k = i; k < asterisks; k++ )
{
System.out.print( "*" );

}
if ( i == 1 )
{
System.out.print( "*" );
}

asterisks -= 2;
System.out.println();
}
}

最佳答案

使用递归来解决这个问题要容易得多:

static String triangle(int n, String s) {
return
n == 0 ? "" :
n == 1 ? s :
s
+
triangle(n - 2, "**" + s)
+
s
;
}

public static void main(String args[]) {
System.out.println(triangle(6, "*\n"));
}

三角形的结构是不言而喻的:

  • n == 0?不用排队!
  • n == 1?一行!
  • 否则呢?两行夹着 n - 2 行! (更长!)

关于java - 在java中打印一个横向三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2498039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com