用字符打印金字塔图案(Printing pyramid pattern out of characters)

编程入门 行业动态 更新时间:2024-10-25 14:25:20
用字符打印金字塔图案(Printing pyramid pattern out of characters)

我需要打印金字塔形状的字符数组。 我到目前为止是这样的:

char[] chars = {'F', 'E', 'L', 'I', 'Z', ' ', 'A', 'N','I', 'V', 'E', 'R', 'S', 'A', 'R', 'I', 'O'}; int length = chars.length; for (int i = 1; i < length; i += 2) { for (int j = 0; j < 9 - i / 2; j++) System.out.print(" "); for (int j = 0; j < i; j++) System.out.print(chars[j]); System.out.print("\n"); } for (int i = length; i > 0; i -= 2) { for (int j = 0; j < 9 - i / 2; j++) System.out.print(" "); for (int j = 0; j < i; j++) System.out.print(chars[j]); System.out.print("\n");

并打印这个:

F FEL FELIZ FELIZ A FELIZ ANI FELIZ ANIVE FELIZ ANIVERS FELIZ ANIVERSAR FELIZ ANIVERSARIO FELIZ ANIVERSAR FELIZ ANIVERS FELIZ ANIVE FELIZ ANI FELIZ A FELIZ FEL F

但我需要它从数组中间的字符开始打印。 最终结果是这样的:

I NIV ANIVE ANIVER Z ANIVERS IZ ANIVERSA LIZ ANIVERSAR ELIZ ANIVERSARI FELIZ ANIVERSARIO ELIZ ANIVERSARI LIZ ANIVERSAR IZ ANIVERSA Z ANIVERS ANIVER ANIVE NIV I

任何帮助将不胜感激。

I need to print an array of characters in a pyramid shape. What I have so far is this:

char[] chars = {'F', 'E', 'L', 'I', 'Z', ' ', 'A', 'N','I', 'V', 'E', 'R', 'S', 'A', 'R', 'I', 'O'}; int length = chars.length; for (int i = 1; i < length; i += 2) { for (int j = 0; j < 9 - i / 2; j++) System.out.print(" "); for (int j = 0; j < i; j++) System.out.print(chars[j]); System.out.print("\n"); } for (int i = length; i > 0; i -= 2) { for (int j = 0; j < 9 - i / 2; j++) System.out.print(" "); for (int j = 0; j < i; j++) System.out.print(chars[j]); System.out.print("\n");

and it prints this:

F FEL FELIZ FELIZ A FELIZ ANI FELIZ ANIVE FELIZ ANIVERS FELIZ ANIVERSAR FELIZ ANIVERSARIO FELIZ ANIVERSAR FELIZ ANIVERS FELIZ ANIVE FELIZ ANI FELIZ A FELIZ FEL F

But I need it to start printing from the character in the middle of the array. The end result gotta be like this:

I NIV ANIVE ANIVER Z ANIVERS IZ ANIVERSA LIZ ANIVERSAR ELIZ ANIVERSARI FELIZ ANIVERSARIO ELIZ ANIVERSARI LIZ ANIVERSAR IZ ANIVERSA Z ANIVERS ANIVER ANIVE NIV I

Any help would be greatly appreciated.

最满意答案

你可以做同样的事情在下面的代码显示。 它将使用较少数量的for循环。 我在代码中添加了内嵌评论。

char[] chars = { 'F', 'E', 'L', 'I', 'Z', ' ', 'A', 'N', 'I', 'V', 'E', 'R', 'S', 'A', 'R', 'I', 'O' }; int length = chars.length; for (int line=0;line<=length;line++) { //This will print upper part of pyramid if(line < length/2){ String output=""; int middelVal=length/2; for (int i = middelVal - line; i > 0; i--) { output=output+" "; } for (int i = middelVal - line; i <= middelVal + line; i++) { output=output+chars[i]; } System.out.println(output); }else if(line > length/2){ //This will print lower part of pyramid String output=""; int middelVal=length/2; int nwNum = chars.length-line; for (int i = middelVal - nwNum; i > 0; i--) { output=output+" "; } for (int i = middelVal - nwNum; i <= middelVal + nwNum; i++) { output=output+chars[i]; } System.out.println(output); } }

You can do the same thing as show on below code. It will use lesser number of for loops. I have added inline comments in the code go through it.

char[] chars = { 'F', 'E', 'L', 'I', 'Z', ' ', 'A', 'N', 'I', 'V', 'E', 'R', 'S', 'A', 'R', 'I', 'O' }; int length = chars.length; for (int line=0;line<=length;line++) { //This will print upper part of pyramid if(line < length/2){ String output=""; int middelVal=length/2; for (int i = middelVal - line; i > 0; i--) { output=output+" "; } for (int i = middelVal - line; i <= middelVal + line; i++) { output=output+chars[i]; } System.out.println(output); }else if(line > length/2){ //This will print lower part of pyramid String output=""; int middelVal=length/2; int nwNum = chars.length-line; for (int i = middelVal - nwNum; i > 0; i--) { output=output+" "; } for (int i = middelVal - nwNum; i <= middelVal + nwNum; i++) { output=output+chars[i]; } System.out.println(output); } }

更多推荐

本文发布于:2023-08-02 13:45:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1376967.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:用字   金字塔   图案   Printing   pattern

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!