您的位置:首页 > 其它

hdu1722 - cake

2015-05-31 10:25 162 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1722

默认蛋糕为圆形,一刀为圆的半径。便巧妙的将蛋糕分块转化为切的刀数。例:分为两块,切两个半径;三块三个半径。

首先将蛋糕 均切 p次,再将其 均切 q次,然后将两者切的轨迹尽可能多的重合,便得出切的最少的次数,即最少分块。

那么,怎么求 尽可能多的重合的刀数呢?没错,这便是 最大公约数。

代码如下:

#include<iostream>

using namespace std;

int main()

{

int q, p;

while (cin >> p >> q)

{

int a = p, b = q,c=a%b;

while(c != 0)

{

a = b;

b = c;

c = a%b;

}

cout << p + q - b<<endl;

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: