为了账号安全,请及时绑定邮箱和手机立即绑定

在控制台上绘制一个圣诞树,使用java.util.Scanner输入大小,询问空格的位置

在控制台上绘制一个圣诞树,使用java.util.Scanner输入大小,询问空格的位置

萧十郎 2022-09-07 17:15:05
我一直在尝试使用用户输入的大小绘制圣诞树(打印到控制台)。我也一直在试图找出逻辑,比如空间会占用。对我来说,任何一个都会很棒。此外,此实验室只需要一个循环,并且必须调用我在下面提供的方法写入模式。非常感谢。hintfor抱歉,如果代码太长。这只是为了确保你们能够理解它。以下是我应该使用输入4显示的输出:for (int i=0; i <=size; i++) {        writePattern (' ','*',' ', ' ',' ',size -i,i,0,0,0,size+2);        writePattern (' ','*','*',' ',' ',size -i,i,i,0,0,size+2);    }这就是我上面提到的wrirePattern。private void writePattern(char ch1, char ch2, char ch3, char ch4, char ch5, int n1, int n2, int n3, int n4, int n5, int length)  {while ((n1 > 0) && (length > 0)) {    System.out.print(ch1);    n1--;    length--;     } while ((n2 > 0) && (length > 0)) {    System.out.print(ch2);    n2--;    length--; } while ((n3 > 0) && (length > 0)) {    System.out.print(ch3);    n3--;    length--; } while ((n4 > 0) && (length > 0)) {    System.out.print(ch4);    n4--;    length--; } while ((n5 > 0) && (length > 0)) {    System.out.print(ch5);    n5--;    length--;}System.out.println();   }这是来自另一个用于提供输出的类:drawer.drawXmasTree();            System.out.println("\n");;
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

输出有 2 个部分。

有树的(顶部),用? 字符。leavestrunknewline

叶:

从顶部开始,您会注意到第一个星号之前有空格。上面的行将有 ,然后是下一行,依此类推,直到空格数变为 。sizesize-1size-20

但是,此模式是不完整的。它只会给你每行的第一个星号。请注意(再次从顶部开始)第一个星号后面有 0 个空格,第二个星号后面有 1 个空格(没有第二个星号),依此类推,直到最后一行。

使用此模式和叶子可能是一个简单/容易(希望)的任务。

树干:

每个星号后面没有空格。

从顶部开始,它打印出空格,然后打印出包含星号的行。然后它打印出空格,紧接着,每个星号行。size-111size-223

这种模式继续,每次空格数减少时,用这种宽度打印的行数增加(两个方向多一个宽度),并且那里的行数增加一倍。121


如果我犯了错误,请纠正我。这个答案纯粹是关于如何打印它的逻辑;这当然需要翻译成适当的代码才能运行。


查看完整回答
反对 回复 2022-09-07
  • 1 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信