输出星堆

题:从键盘接收一个正整数,该正整数作为行数,输出以下图形

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

本题思路:

连续输出打印 "空格" 和 星标,这里我们使用for循环。首先循环输入的正整数N打印出行数,如下图一样便完成了一半,然后在此循环的条件下找出输出 "空格" 和 "*" 的规律。

      *
      *
      *
      *

第一行 "空格" 仅仅打印到第N-1列处,"*" 打印到第N处."空格" 每下一行向左便少一列,也就是N-Nj,"*" 则是每向下一行便多两列,也就是2*Nj-1,Nj表示第j行
   ||||*
      ***
     *****
    *******
   *********  

最后在行循环末尾再添加换行代码

System.out.println();

实现代码如下:

 public static void main(String[] args){
      java.util.Scanner i1 = new java.util.Scanner(System.in);
      System.out.println("请输入正整数");
      int N =i1.nextInt();

      //行数循环
      for ( int i =1;i<=N;i++){

      //满足条件时输出的空格
          for (int j=0;j<N-i;j++){
            System.out.print(" ");
          } 

       //位置满足公式时输出的”*“
          for (int k=0;k<i*2-1;k++){
              System.out.print("*");

          }
          System.out.println();

      }
  }

结果如图:

错误思路:

在打印完 "空格" 和 星标 以后,想继续打印 "*"后面的空格,认为输出的应该是一个矩阵,但其实只需要打印完后接着换行就可以了--

posted @ 2022-10-21 10:16  ikun、  阅读(49)  评论(0编辑  收藏  举报