题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形。
当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正方 形,剩下一块矩形,然后再切割剩下的矩形材料,直到全部切为正方形为止。
例如,对于一块两边分别为 5 和 3 的材料(记为 5×3),小明会依次切出3×3、2×2、1×1、1×1 共 4 个正方形。
现在小明有一块矩形的材料,两边长分别是 2019 和 324。请问小明最终会切出多少个正方形?
运行限制
最大运行时间:1s
最大运行内存: 128M
所需变量
int a;//由于给了长度,我把它设定为变量
int b;//给的宽度,我为了代码的可用性,设置为变量
int sum;//代表能切割多少个正方形,初值为0
思路:由于要切割最大的正方形,那么我们判断,长和宽谁更长,如果长更长,那么我们就切割以宽为变长的正方形,不断地循环下去,直到长和宽相等,那么这个就是最后的那个正方形,至此我们就完成切割了,最后输出他能切割多少个正方形。
该算法本人认为比较优,如果有更好的想法,欢迎q我!
#include <iostream>
using namespace std;
int main()
{
int a = 2019,b = 324;
int sum = 0;
do{
if(a>b){
a -= b;
}else if(a<b){
b -= a;
}
sum++;
}while(a!=b);
sum++;
cout<<sum<<endl;
return 0;
}