因此,有人问我这个问题,我只能解决代码的顶部,而我只能停留在底部。

编写一个名为EmptyDiamond.java的Java程序,其中包含采用
整数N,并在2N − 1行上打印一个空菱形,如下所示。
当n = 3时采样输出

   1
  2 2
 3   3
  2 2
   1


到目前为止,这是我的代码:

    public static void shape(int n){


//TOP PART


        for(int i=1; i<=(n-1) ; i++){
            System.out.print(" ");
        }
        System.out.println(1);

        for(int i=2; i<=n; i++){
            for(int j=1; j<=(n-i); j++){
                System.out.print(" ");
            }
            System.out.print(i);

            for(int j=1; j<=2*i-n+1; j++){
                System.out.print(" ");
            }
            System.out.println(i);
        }

//BOTTOM PART(The messed up part)

        for(int i=n+1; i<=2*n-2; i++){

            for(int j=1; j<=n-i; j++){
                System.out.print(" ");
            }
            System.out.print(i);

            for(int j=1; j<=n; j++){
                System.out.print(" ");
            }


            System.out.print(i);
        }
        for(int i=1; i<=(n-1) ; i++){
            System.out.print(" ");
        }
        System.out.println(1);
    }
    public static void main(String[]args){
        shape(4);
    }

最佳答案

这是打印空钻石的程序:

int n = 3; //change the value of n to increase the size of diamond
int upperCount = 1;
for(int i=n; i>=1; i--){

    for(int j=i; j>=1; j--){
       System.out.print(" ");
    }
    System.out.print(upperCount);

    for(int j=0; j<=upperCount-2; j++){
       System.out.print(" ");
    }

    for(int j=0; j<=upperCount-2; j++){
       System.out.print(" ");
    }

    if(upperCount!=1){
       System.out.print(upperCount);
    }

    upperCount++;
    System.out.print("\n");
}

int lowerCount = n-1;
for(int i=1; i<=n-1; i++){

    for(int j=0; j<=i; j++){
        System.out.print(" ");
    }
    System.out.print(lowerCount);

    for(int j=0; j<=lowerCount-2; j++){
       System.out.print(" ");
    }

    for(int j=0; j<=lowerCount-2; j++){
       System.out.print(" ");
    }

    if(lowerCount!=1){
       System.out.print(lowerCount);
    }

    lowerCount--;
    System.out.print("\n");
}


在代码的底部进行以下更改:

int lowerCount = n-1;
for(int i=n-1; i>=2; i--){
    for(int j=1; j<=(n-i); j++){
       System.out.print(" ");
    }
    System.out.print(i);

    for(int j=1; j<=lowerCount; j++){
       System.out.print(" ");
    }
    System.out.print(i);
    lowerCount-=2;
}

08-03 16:47