gpt4 book ai didi

java - 用字符打印金字塔图案

转载 作者:搜寻专家 更新时间:2023-10-31 08:18:54 24 4
gpt4 key购买 nike

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

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

如有任何帮助,我们将不胜感激。

最佳答案

您可以执行与以下代码相同的操作。它将使用较少数量的 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);
}
}

关于java - 用字符打印金字塔图案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40878778/

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