如何使用for循环在java中创建向后三角形

时间:2015-05-14 13:56:38

标签: java loops for-loop

我需要制作一个看起来像这样的三角形

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

目前我有一个看起来像

的工作版
*
**
***
****
*****
******
*******

使用循环:

public static void standard(int n)
   {
      for(int x = 1; x <= n; x++)
      {
         for(int c = 1; c <= x; c++)
         {
            System.out.print("*");
         }
         System.out.println();
      }
   }

我如何开展这项工作

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

这是我的尝试:

public static void backward(int n) 
{ 
    for(int x = 7; x <= n; x++) 
    { 
        for(int y = 1; y >= x; y--) 
        {
            if (x >= y) 
            { 
                System.out.print("*");
            } 
            else 
            {
                System.out.print("");
            }
         }
         System.out.println();
    }
}

4 个答案:

答案 0 :(得分:5)

在每行打印n字符:如果索引c < n - x,则打印空格,否则打印星号:

for (int x = 1; x <= n; x++) {
    for (int c = 0; c < n; c++) 
        System.out.print(c < n - x ? ' ' : '*');    
    System.out.println();
}

输出(n = 6):

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

答案 1 :(得分:0)

public static void standard(int n)
   {
      for(int x = 1; x <= n; x++)
      {

新代码

         for (int b = 0; b <= (n - x); b++)
            System.out.print(" ");

此代码在添加星星之前添加空格。由于三角形是2以上的矩形,我们知道每次总长度为n,而我们只是将其他空间设为仅显示三角形

         for(int c = 1; c <= x; c++)
         {
            System.out.print("*");
         }
         System.out.println();
      }
   }

答案 2 :(得分:0)

void triangle(int n) {

        // create first line
        StringBuffer out = new StringBuffer(2 * n + 1);
        for (int i = 0; i < n - 1; ++i) {
            out.append(' ');
        }
        out.append('*');

        // repeatedly remove a space and add a star
        while (n-- > 0) {
            System.out.println(out);
            out.deleteCharAt(0);
            out.append("*");
        }
    }

答案 3 :(得分:0)

只需更改循环,以便x表示空格数并首先打印该空格数,然后打印缺少的字符以填充该行:

for (int x = n-1; x >= 0; x--) {
    for (int c = 0; c < x; c++) {
        System.out.print(" ");
    }
    for (int c = x; c < n; c++) {
        System.out.print("*");
    }
    System.out.println();
}