输出星堆
题:从键盘接收一个正整数,该正整数作为行数,输出以下图形
       *
      ***
     *****
    *******
   *********
本题思路:
连续输出打印 "空格" 和 星标,这里我们使用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();
      }
  }
结果如图:

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

                
            
        
浙公网安备 33010602011771号