gpt4 book ai didi

java - 将此模式推广到 'n' 行

转载 作者:行者123 更新时间:2023-12-02 06:12:58 25 4
gpt4 key购买 nike

对于家庭作业,我需要帮助来概括打印以下图案的代码。

   A
B C
D E F
G H I J

问题在于对字母之间的空格进行编码。
这是我想出的,但它仅适用于模式的前 4 行。
(抱歉,我的格式化技巧很差>.>)

int r = 65;
char m ;
int count=0;
for(int i = 4;i>0;i--)
{
for( int j = i;j>0;j--)
{System.out.print(" ");}
for(int j = 4-i;j>=0;j--)
{
count++;
m=(char)r;
if(count == 3||count == 6||count == 8 || count == 11|| count == 13|| count ==15)
{
System.out.print(" ");r--;

}
else
System.out.print(m);r++;
}
for(int j = 4-i;j>0;j--)
{
count++;m=(char)r;
if(count == 3||count == 6||count == 8 || count == 11|| count == 13|| count ==15)
{
System.out.print(" ");r--;
}
else
System.out.print(m);r++;
}
System.out.println("");
}

感谢 Gene 的解释,我做了一些编辑,这就是我想出的结果。

            int r = 65;
char m ;
for(int i = 4;i>0;i--)
{
for( int j = i;j>0;j--)
{System.out.print(" ");}
for(int j = 4-i;j>=0;j--)
{
m=(char)r;

System.out.print(m+" ");
r++;
}
System.out.println("");
}

最佳答案

编写循环就是使用数学(通常是简单的数学)来根据循环索引来描述一次迭代。

N 为行数,因此 i=0,1,...N-1 为其索引。

首先,您的示例显示行 i 具有 N-i-1 前导空格。让我们检查一下。对于行i=N-1,我们得到零,对于i=0,我们得到N-1。在您的示例中,i=0 情况为 3。这与绘图一致,因此我们看起来不错。

第二部分是每行有 i+1 个字符。除了最后一个之外,所有的都有一个后续空格。最后一个有一个换行符。

最后,我们只需从 A 开始并在每次打印新字母时递增即可获得正确的字母。

现在我们准备编写代码了:

char ltr = 'A';
for (int i = 0; i < N; i++) {

// Print the leading spaces.
int nLeadingSpaces = N - i - 1;
for (int j = 0; j < nLeadingSpaces; j++)
System.out.print(' ');

// Print the letters for this row. There are
// i+1 of them. So print the first i with a following
// space and the last one with a newline.
for (int j = 0; j < i; j++)
System.out.print(ltr++ + " ");
System.out.println(ltr++);
}

这尚未经过测试,但应该可以工作。

关于java - 将此模式推广到 'n' 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11492880/

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