Java 图案设计

Java Pattern Design

我正在尝试在 java 上制作此图案:

*******
 ******
  *****
   ****
    ***
     **
      *

然而,到目前为止我只能生成这个代码:

public  class Pattern
{
  public static void main(String [] args) {
    int height = 7;
    for (int i = 0; i <= height; i++ ) {
      for (int j = 0; j <= i ; j++) {
        System.out.print("*");
      }
      System.out.println();
    }
  }
 }

此代码只能生成此图像:

*
**
***
****
*****
******
*******
********

我应该更改代码的哪一部分才能生成第一张图片?

感谢您的帮助, 如果这是一个错误的问题,我深表歉意 但非常感谢您的帮助。

你必须改变内循环。目前您正在循环到当前行号(= 高度),并且在每次迭代中,您向当前行添加一颗星。所以它将从一颗星开始,直到八颗星,因为你的身高总计设置为 7。 要让它反转,你必须反转内部循环,所以它从 8 颗星(高度 - i)开始,然后回到一颗:

for (int j = height - i; j >= 0; j--) {
    System.out.print("*");
}

将外循环改为for (int i = height -1; i >= 0; i--)

int height = 7;
for (int i = height; i>=1; i-- ) { //reverse,and change '0' to '1'
  int space_cnt = height - i;  //number of space we need
  for (int j = 1; j <= height ; j++) {
    if(space_cnt-->0){
       System.out.print(" ");      
    }else{
       System.out.print("*");
    }
  }
  System.out.println();
}
public class MyPattern {

    public static void main(String[] args) {
        int height = 7;
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < height; j++) {
                if (j >= i) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }

            }
            System.out.println();
        }

    }

输出:

*******
 ******
  *****
   ****
    ***
     **
      *