Java 如何在列和行中打印正确数量的asterix?
我想打印asterix,它等于行数-它们应该从右侧开始。它应该在第一行以9个空格和1*开始,然后在第二行以2*和8个空格开始,依此类推,直到第十行,第十行应该有10*和0个空格,如下图所示: 我可以在每行打印正确数量的空格,在正确位置打印1*。例如,它在第一行打印9个空格和1*。但在第二行,它在第九个位置打印8个空格和1*,而不是两个??我看不到我的代码中遗漏了什么:Java 如何在列和行中打印正确数量的asterix?,java,Java,我想打印asterix,它等于行数-它们应该从右侧开始。它应该在第一行以9个空格和1*开始,然后在第二行以2*和8个空格开始,依此类推,直到第十行,第十行应该有10*和0个空格,如下图所示: 我可以在每行打印正确数量的空格,在正确位置打印1*。例如,它在第一行打印9个空格和1*。但在第二行,它在第九个位置打印8个空格和1*,而不是两个??我看不到我的代码中遗漏了什么: for (int row = 1; row <= 10; row++) { for (int col = 10;
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();
}
这也可能有帮助:
int n = 10;
int k = 2 * n - 2; // number of spaces
// outer loop to handle number of rows
for (int i = 1; i <= n; i++) {
// inner loop to handle number spaces
for (int j = 1; j <= k; j++) {
System.out.print(" "); // printing spaces
}
k = k - 2; // decrementing k after each loop
// inner loop to handle number of columns
for (int j = 1; j <= i; j++) {
System.out.print("* "); // printing stars
}
// ending line after each row
System.out.println();
}
如果col是因为我试图弄清楚它..按照您的方法,将col>row更改为col>1,然后在if语句中将print移到new else。这将为您提供所需的输出。
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));
}
int n = 10;
int k = 2 * n - 2; // number of spaces
// outer loop to handle number of rows
for (int i = 1; i <= n; i++) {
// inner loop to handle number spaces
for (int j = 1; j <= k; j++) {
System.out.print(" "); // printing spaces
}
k = k - 2; // decrementing k after each loop
// inner loop to handle number of columns
for (int j = 1; j <= i; j++) {
System.out.print("* "); // printing stars
}
// ending line after each row
System.out.println();
}