这是Codeforces Round #296 (Div. 2)的A题,题意就是:
小明有一张长为a,宽为b的纸,每当要折纸鹤时,就从纸上剪下一个正方形,然后,剩下的纸还可以剪出正方形,要是剩下的纸刚好是正方形的话,就直接拿这个正方形去做最后一个纸鹤,求总共可以折多少个纸鹤。小明是个节约资源的好孩子。
_______________
input
2 1
output
2
_______________
input
10 7
output
6
_______________
输入的2个数字分别是长和宽,输出总共可以折叠的纸鹤数。两种输入的情况如下:
problem tag 刚好是math,是不是很熟悉,这个东西,有点像gcd,应该就是辗转相除法了,好,上代码。
#include <iostream>
using namespace std;
long long solve(long long a, long long b){long long cnt = 0;while(b){long long e = a/b, d = a%b;cnt += e;a = b; b = d;}return cnt;
}
int main(){long long a, b;cin >> a >> b;cout << solve(a, b);return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。