-2

我正在尝试用 java 绘制这种形式:对于 n=4:

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

但我能得到的是:

对于 n=4:

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

这是代码:

public class test1 {
    public static void main(String[] args) {
        int n;
        System.out.print("Entrer n:");
        Scanner x = new Scanner(System.in);
        n=x.nextInt();
        for(int i=0; i<n; i++) {    
            System.out.print("*");

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

            for(int k=0; k<n/2; k++) {
                System.out.print(" ");
            }

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

            System.out.println("");
        }
    }
}

有人可以帮我吗,谢谢。

4

2 回答 2

3

如果我正确理解规范,应该这样做:

    int n = 4;
    for(int i = 0; i < n ; i++)
    {
        for(int j = 0 ; j < n-i ; j++)
        {
            System.out.print("*");
        }
        for(int j = 0 ; j < i*2-1 ; j++)
        {
            System.out.print(" ");
        }
        for(int j = i==0?1:0 ; j < n-i ; j++)
        {
            System.out.print("*");
        }
        System.out.print("\n");
    }

n=1:

*

n=4:

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

n=6:

***********
***** *****
****   ****
***     ***
**       **
*         *
于 2013-09-24T20:53:20.450 回答
0

你在循环中的问题在这部分

for(int k=0; k<n/2; k++) {
    System.out.print(" ");
}

解决方案 :

for (int k = 0; k < i*2; k++) {    // solved
    System.out.print(" ");
}

你需要的空格数等于你的行的索引,所以你的行索引在“i”变量中

在第 0 行你需要 0 个空格

在第 1 行你需要 2 个空间

在第 2 行你需要 4 个空间

等等

于 2013-09-24T20:54:38.413 回答