利用循环打印正方形和长方形

利用循环打印正方形和长方形

public static void main(String[] args) {

    /**
     * 利用循环打印正方形和长方形
     */
    //第一个循环,x小于等于3的意思就是3行
    for (int x = 1; x <= 3; x++) {
        //第二个循环,每行有几个
        for (int y = 1; y <= 8; y++) {
            //打印
            System.out.print("* ");
        }
        //换行
        System.out.println();
    }

    System.out.println();
    //第一个循环,x小于等于5的意思就是5行
    for (int x = 1; x <= 5; x++) {
        //第二个循环,每行有几个
        for (int y = 1; y <= 8; y++) {
            //打印
            System.out.print("* ");
        }
        //换行
        System.out.println();
    }


}
Java 中,计算棋盘内正方形长方形的数量通常涉及到二维数组或者矩阵的操作。首先我们需要遍历每个位置(i, j),然后检查当前的格子与其相邻的格子能否组成一个正方形长方形。 对于正方形,我们可以找到所有边长相等的正方形个数。对于长方形,需要考虑对角线是否可以作为另一边的情况。这里提供一个简单的思路: 1. 对于每个点 (i, j),计算其边长 k 的最大值,使得 i - k >= 0 j - k >= 0,并且 i + k < n(n 是棋盘的行数) j + k < m(m 是棋盘的列数)。这个 k 就代表了以 (i, j) 为中心的正方形长方形的最大尺寸。 2. 然后计算从 k = 1 到 k = min(i, j) 的正方形数量,因为更大的边长不会构成新的正方形。每次增加 k,就对应一个新的正方形区域。 3. 长方形的情况类似,但是考虑到对角线,我们还需要额外处理 i == j 或者 |i - j| 的情况。 下面是一个伪代码示例: ```java int[][] board; // 棋盘矩阵 int n, m; // 行数列数 int squareCount = 0; int rectangleCount = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { int maxSide = Math.min(i, j); // 取较小的边 for (int side = 1; side <= maxSide; side++) { // 从 1 到最大边长 if ((i - side) >= 0 && (j - side) >= 0 && (i + side) < n && (j + side) < m) { squareCount++; // 正方形 // 如果 i == j 或 |i - j| = side,则可能是长方形 if (Math.abs(i - j) == side || (i == j && side * 2 <= Math.min(i, j))) { rectangleCount++; } } } } } System.out.println("正方形数量: " + squareCount); System.out.println("长方形数量: " + rectangleCount); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*小坏。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值