2053. 小强的生日

玖槭_977

本题严格意义上是一道数学题。
首先我们假设我们有P,Q两种情况,由于后续计算中P,Q满足交换律,我们不妨设P>Q.那么,我们显然可得最大的蛋糕一定不能大于1/P,否则蛋糕数量一定小于P,那么当P人来的时候,我们就需要重新切蛋糕。既然如此我们可以先将每块切成1/P,也就是说我们现在有了P块大小为1/P的蛋糕。
接下来,我们从中取出一块蛋糕,将其再切为Q块,即每块大小为1/P×Q。
现在,我们拥有了:
P-1块大小为1/P的蛋糕
Q块大小为1/P×Q的蛋糕
共计:P+Q-1块。
所以代码可以简单进行如下操作(注意变量取值范围):

while(cin >> p >> q)
        cout << p+q-1 << endl;
你当前正在回复 博客/题目
存在问题!