这是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;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

 posted on 2015-03-18 19:24  Rex7  阅读(206)  评论(0编辑  收藏  举报