输入一个整数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....)

  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值