切正方形

切正方形

题目描述

小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形。
当他面对一块矩形材料时,他总是切出当前矩形内能得到的最大正方形,切割完成后剩余部分仍为矩形,重复该切割操作,直到整块材料全部切为正方形为止。

例如,对于一块尺寸为 \(5 × 3\) 的矩形材料,会依次切出3×3、2×2、1×1、1×1,一共得到4个正方形。

现有一块矩形材料,两边长度分别为 2019324,请求出最终一共可以切出多少个正方形。

解题思路

  1. 设矩形长为a,宽为b,始终保证a大于b
  2. 每次能切出 a整除b 个边长为b的正方形
  3. 更新矩形尺寸为 (b , a对b取余)
  4. 循环执行,直到短边长度为0,累加所有数量即为总数

题目出处

蓝桥杯省赛填空题真题


题解

点击查看代码
public class 切正方形 {
    static int count=0;
    public static void main(String[] args) {
        int a=2019;
        int b=324;
        helper(a,b);
        System.out.println(count);
    }

    private static void helper(int a, int b) {
        if(a==0||b==0){
            return;
        }
        if(a>b){
            count+=a/b;
            a=a%b;
            helper(a,b);
        }else{
            count+=b/a;
            b=b%a;
            helper(a,b);
        }
    }
}
posted @ 2026-05-17 16:02  kitic  阅读(16)  评论(0)    收藏  举报