用java绘制三角形

用java绘制三角形,java,loops,geometry,Java,Loops,Geometry,我试图用java绘制此表单: 对于n=4: ******* *** *** ** ** * * 但我能得到的只是: 对于n=4: ******* *** *** ** ** * * **** **** *** *** ** ** * * 以下是此操作的代码: public class test1 { public

我试图用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("");
        }
    }
}
公共类test1{
公共静态void main(字符串[]args){
int n;
系统输出打印(“输入n:”);
扫描器x=新扫描器(System.in);
n=x.nextInt();

对于(int i=0;i如果我正确理解了规范,则应这样做:

    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=4:

n=6:


循环中的问题就在这一部分

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

用于(int k=0;k你能提供一般规格吗?n到底是什么?n=1、2、3、5或6的期望值是什么?n是三角形中的直线数你试过了吗?第2行需要多少空格?不是2。@Cruncher代码现在是正确的,它是乘法而不是除法:DThanks,这正是我想要的这是一个三元语句。
I==0?1:0
表示“如果
I
为0,那么这个表达式为1,否则为0”。这是因为在第一行,我们有
2(n-I)-1
*,而其他行有
2(n-i)
*。这是一种跳过第一行中星号的方法。您也可以将其放在第一个循环中。
***********
***** *****
****   ****
***     ***
**       **
*         *
for(int k=0; k<n/2; k++) {
    System.out.print(" ");
}
for (int k = 0; k < i*2; k++) {    // solved
    System.out.print(" ");
}