绘制一个三角形形式的Java

时间:2013-09-24 20:41:07

标签: java loops geometry

我正在尝试用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("");
        }
    }
}

有人可以帮助我,谢谢。

2 个答案:

答案 0 :(得分: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:

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

答案 1 :(得分: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个空格

等等