题目描述
小爱手中有一张矩形纸张,他想把这张纸分成若干正方形纸片,具体分法如下:
- 第11步:小爱会先确定纸张的长宽,假设短边长度为𝑛n,长边长度为𝑚m。
- 第22步:小爱会将短边沿直角平分线对折后剪去,从而得到一个𝑛×𝑛n×n的方形纸片。
- 第33步:若还有剩余,小爱会将剩余的长宽为𝑛∗(𝑚−𝑛)n∗(m−n)的纸张作为现有纸张,代入第一步后重复之前过程,直至没有之后纸张剩余为止。
请问按如上操作,小爱最终会得到几张方形纸片?
例如:一开始,小爱有一张 10×610×6 的纸张,按他的分割方法,最终他可以获得 44 张方形纸片,具体过程如下图所示:
输入格式
输入共两个正整数,表示初始矩形纸张的长宽 𝑚,𝑛m,n
输出格式
输出题目所求能获得的矩形个数
数据范围
- 对于 30%30% 的数据,1≤𝑛,𝑚≤1001≤n,m≤100
- 对于 60%60% 的数据,1≤𝑛,𝑚≤1071≤n,m≤107
- 对于 100%100% 的数据,1≤𝑛,𝑚≤10131≤n,m≤1013
样例数据
输入:
10 6
输出:
4
详见代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n, m;
long long ans = 0;
cin >> n >> m;
while (m != 0)
{
long long d = n % m;
ans += n / m;
n = m;
m = d;
}
cout << ans << endl;
}