输入一个整数n,控制台输出n行“*”金字塔的形状(Java)
输出金字塔形状
public class Test_06 {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("请输入一个数字");
int n = sc.nextInt(); //接收用户输入的数字
for (int i = 1; i <= n; i++) { //控制行数,从1行开始循环到第n行
for (int j = 1; j <= n - i; j++) { //每行的空格循环
System.out.print(" "); //每一行的空格
}
for (int k = 1; k <= 2 * i - 1; k++) { //控制*的输出都为奇数
System.out.print("*");
}
System.out.println();
}
}
}
结果
请输入一个数字
10
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
Process finished with exit code 0
代码分析:
按照例子中情况,用户输入了一个10,
第一层for循环i是用来控制输入的总行数(如例子中为10)
第二层for循环中的第一个for循环j用来控制空格数,用来调整队形,使*都在中间,(如例子中要使*在中间,前面就得输出9个空格来调整位置,下面每行依次递减)
第二层for循环中的第二个for循环k用来输出*,结果要输出成金字塔形状,那么前一行就要在这一行居中,所以依次推算下去得是奇数,所以k的范围是2*i-1(每一行的星号数和行数的表达式为2*i-1)(1 3 5 7 9 11 13....)