标签:算法 codeforces
这是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; }
标签:算法 codeforces
原文地址:http://blog.csdn.net/kamsau/article/details/44419099