输出星堆
题:从键盘接收一个正整数,该正整数作为行数,输出以下图形
*
***
*****
*******
*********
本题思路:
连续输出打印 "空格" 和 星标,这里我们使用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();
}
}
结果如图:
错误思路:
在打印完 "空格" 和 星标 以后,想继续打印 "*"后面的空格,认为输出的应该是一个矩阵,但其实只需要打印完后接着换行就可以了--