JAVA打印菱形(双重For循环)

方法 一:

j<m*i + n

内层循环变量j<每轮循环递增次数*外层循环循环变量 + 第一轮循环次数

     *           1

    ***          2

   *****         5

  *******        7

*********       9

  *******        7

   *****         5

    ***          3

      *           1

分析:

星星第1行到第5行,每行递增2,所以m为2;

第5行到第9行,每行递减2;所以m为-2;

第1行到第5行,左边的空格逐行减1;

第5行到第9行,左边的空格逐行加1;


public class Star2 {
        public static void main(String[] args) {
            for (int i = 0; i < 5; i++) {
                for (int j = 0; j < -i + 4; j++) { //1 打印空格 m = -1;
                    System.out.print(" ");
                }
                for (int j = 0; j < 2 * i + 1; j++) {//2 打印星星 m = 2; n = 1
                    System.out.print("*");
                }
                System.out.println(); // 3 换行
            }
            for (int i = 0; i < 4; i++) {
                for (int j = 0; j < i + 1; j++) { //1 打印空格 m = 1;n = 1
                    System.out.print(" ");
                }
                for (int j = 0; j < -2 * i + 7; j++) {//2 打印星星 m = -2; n = 7
                    System.out.print("*");
                }
                System.out.println(); // 3 换行
            }
        }

方法 二:

 

public void Exe1(){
        Scanner sc = new Scanner(System.in);
        int rows = sc.nextInt();
        for (int row = 1;row<=2*rows-1;row++){
            for (int col = 1;col<=Math.abs(rows-row);col++){
                System.out.print(" ");
            }
            for (int col = 1;col<=2*rows-1-2*Math.abs(rows-row);col++){
                System.out.print("*");
            }
            System.out.println();
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值