切正方形
切正方形
题目描述
小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形。
当他面对一块矩形材料时,他总是切出当前矩形内能得到的最大正方形,切割完成后剩余部分仍为矩形,重复该切割操作,直到整块材料全部切为正方形为止。
例如,对于一块尺寸为 \(5 × 3\) 的矩形材料,会依次切出3×3、2×2、1×1、1×1,一共得到4个正方形。
现有一块矩形材料,两边长度分别为 2019 和 324,请求出最终一共可以切出多少个正方形。
解题思路
- 设矩形长为a,宽为b,始终保证a大于b
- 每次能切出 a整除b 个边长为b的正方形
- 更新矩形尺寸为 (b , a对b取余)
- 循环执行,直到短边长度为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);
}
}
}
浙公网安备 33010602011771号