gpt4 book ai didi

java - 如何在列和行中打印正确数量的星号?

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

我想打印星号,它等于行数 - (它们应该从右侧开始)。第一行应以 9 个空格和 1 * 开头,第二行应有 2 * 和 8 个空格,依此类推,直到第十行应有 10 * 和 0 空格,如下图所示:

enter image description here

我可以在每行打印正确的空格数,并在正确的位置打印 1 * 。例如,它在第一行打印 9 个空格和 1 个 *。但在第二行,它在第九个位置打印 8 个空格和 1 *,而不是两个?我看不到我的代码中遗漏了什么:

for (int row = 1; row <= 10; row++) {
for (int col = 10; col > row; col--) {
System.out.print(" ");
if (col <= row) {
System.out.print("*");
}
}
System.out.println("*");
}

最佳答案

有几种解决方案:

1) 要么为每一行创建两个内部循环:一个用于写入空格,另一个用于写入星星

    final int rows = 10;
for(int row = 1; row <= rows; row++) {
for(int i = 0; i < (rows - row); i++) {
System.out.print(" ");
}
for(int i = 0; i < (row); i++) {
System.out.print("*");
}
System.out.println();
}

2) 或者为每一行创建一个内部循环并检查索引以考虑是否必须打印星号或空白。

final int rows = 10;
for(int row = 1; row <= rows; row++) {
for(int col = 1; col <= rows; col++) {
System.out.print((col <=(rows - row))? " " : "*");
}
System.out.println();
}

3) 或者您可以使用 subString 进行字符串操作(这很难看,但为什么不呢):

final int rows = 10;
final String stars = "************************";
final String blanks = " ";
for(int row = 1; row <= rows; row++) {
System.out.print(blanks.substring(0, rows - row));
System.out.println(stars.substring(0, row));
}

关于java - 如何在列和行中打印正确数量的星号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48950660/

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