zoukankan      html  css  js  c++  java
  • HDU:cake

    Cake

    Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 1295 Accepted Submission(s): 617

    Problem Description
    一次生日Party可能有p人或者q人参加,现准备有一个大蛋糕.问最少要将蛋糕切成多少块(每块大小不一定相等),才能使p人或者q人出席的任何一种情况,都能平均将蛋糕分食.
     

    Input
    每行有两个数p和q.
     

    Output

                输出最少要将蛋糕切成多少块.
     

    Sample Input
    2 3
     

    Sample Output
    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块。
     

    Author
    LL
     

    Source
    HZIEE 2007 Programming Contest
     

    Recommend
    lcy
     

    #include<iostream>
    using namespace std;
    int gcd(int x,int y)
    {
        return y==0?x:gcd(y,x%y);
    }
    int cake(int x,int y)
    {
        if(x%y==0)
            return x/y;
        else
            return x/y*y+cake(y,x%y);
    }
    int main()
    {
        int p,q,tem;
        while(cin>>p>>q)
        {
            if(p<q)
            {
                tem=p;
                p=q;
                q=tem;
            }
            cout<<cake(p/gcd(p,q),q/gcd(p,q))*gcd(p,q)<<endl;
        }
        return 0;
    }

  • 相关阅读:
    正则
    cookie、sesion
    POJ-1509
    HDU-3374
    ZOJ-3822
    HDU-5492
    在什么情况下Java比C++快?
    HDU-5451
    SPOJ-913
    莫比乌斯反演入门
  • 原文地址:https://www.cnblogs.com/connorzx/p/2645079.html
Copyright © 2011-2022 走看看