杭电1722-Cake
2013-07-21 20:06
155 查看
Cake
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1619 Accepted Submission(s): 794
[align=left]Problem Description[/align]
一次生日Party可能有p人或者q人参加,现准备有一个大蛋糕.问最少要将蛋糕切成多少块(每块大小不一定相等),才能使p人或者q人出席的任何一种情况,都能平均将蛋糕分食.
[align=left]Input[/align]
每行有两个数p和q.
[align=left]Output[/align]
输出最少要将蛋糕切成多少块.
[align=left]Sample Input[/align]
2 3
[align=left]Sample Output[/align]
4
Hint将蛋糕切成大小分别为1/3,1/3,1/6,1/6的四块即满足要求.
当2个人来时,每人可以吃1/3+1/6=1/2 , 1/2块。
当3个人来时,每人可以吃1/6+1/6=1/3 , 1/3, 1/3块。
/*思路:如果要能把它分为等值的p份或q份,那么我们可以先分为d(最大公约数)=gcd(p,q)份, 因为当你分为d份的时候,你可能选择将每份分为p/d份(也就是把整体分为p份), 也可以选择将每份分为q/d份(也就是把整体分为p份), 这两种选择里,肯定不会有切到相同位置的一刀! 所以我们可以得到公式:s=p+q-gcd(p,q); */ #include<iostream> using namespace std; int main() { int n,m,a,b; //int gongyueshu(int x,int y); while(cin>>n>>m) { a=n; b=m; while(a!=b) { if(a>b) a-=b; else b-=a; } cout<<n+m-a<<endl; } return 0; } /*int gongyueshu(int x,int y) { if(x==y) return x; else if(x>y) gongyueshu(x-y,y); else gongyueshu(x,y-x); }*/
相关文章推荐
- 【杭电oj】1722 - Cake(数论,GCD)
- 【杭电1722】Cake
- 杭电 acm 1722 Cake
- 杭电1722Cake
- 【杭电】[1722]Cake
- 【杭电 1722】Cake
- 杭电 Problem 1722 Cake 【gcd】
- HDOJ1722--Cake
- HDU - 1722 Cake 抽象最大公约数
- HDU 1722 Cake
- hdu 1722--Cake
- HDOJ 题目1722 Cake(数学)
- 1722 Cake
- 【HDU-1722】 Cake
- HDU-1722-Cake
- 杭电2134-Cuts the cake
- HDOJ&nbsp;&nbsp;1722&nbsp;&nbsp;&nbsp;&nbsp;Cake
- 【hdu 1722】 Cake
- 杭电ACM1722——Cake
- HDU 1722 Cake