You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java实现整数面积拆分:计算可组成的正方形规格与数量

整数面积拆分不同规格正方形的Java实现

实现思路

每次从剩余面积里提取最大规格的正方形(边长取剩余面积平方根的向下整数值),统计该正方形的数量,再用剩余面积继续重复拆分操作,直到剩余面积为0。

代码实现

import java.util.Scanner;

public class SquareSplitter {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入面积:");
        int area = scanner.nextInt();
        scanner.close();

        int totalCount = 0;
        int remaining = area;

        while (remaining > 0) {
            // 计算当前剩余面积能容纳的最大正方形边长
            int side = (int) Math.sqrt(remaining);
            int squareArea = side * side;
            remaining -= squareArea;
            totalCount++;
            // 打印每一步拆分细节
            System.out.printf("拆分出1个%d×%d的正方形,剩余面积%d平方米%n", side, side, remaining);
        }

        System.out.printf("总面积%d平方米共拆分为%d个正方形%n", area, totalCount);
    }
}

代码说明

  1. 用Scanner接收用户输入的整数面积
  2. 循环处理剩余面积:
    • 通过Math.sqrt()结合强制类型转换,得到当前剩余面积能容纳的最大正方形边长
    • 减去该正方形的面积,同时累加正方形总数
  3. 每一步输出拆分过程,最后输出总数量

测试示例

输入12时,程序输出:

请输入面积:12
拆分出1个3×3的正方形,剩余面积3平方米
拆分出1个1×1的正方形,剩余面积2平方米
拆分出1个1×1的正方形,剩余面积1平方米
拆分出1个1×1的正方形,剩余面积0平方米
总面积12平方米共拆分为4个正方形

完全匹配需求示例的拆分逻辑:1个3×3正方形,3个1×1正方形,总计4个。

内容的提问来源于stack exchange,提问作者Mussie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 22:45:34