C++程序计算需要等待多少分钟才能遇到至少一名游泳者


假设我们有四个数字p、a、b和c。有一个游泳池,有三名游泳者。他们分别需要a、b和c分钟才能游过游泳池并返回。因此,第一名游泳者将在开始时间后的0、a、2a、3a...分钟到达游泳池的左侧。第二名游泳者将在0、b、2b、3b...分钟到达,第三名游泳者将在0、c、2c、3c...分钟到达。如果我们在他们开始游泳后p分钟到达游泳池,我们需要找到至少等待多长时间才能看到至少一名游泳者在游泳池的左侧。

所以,如果输入像p = 2; a = 6; b = 10; c = 9,那么输出将是2,因为当我们在2分钟到达游泳池时,第一名游泳者将在6分钟返回,所以我们需要等待4个时间单位。

步骤

为了解决这个问题,我们将遵循以下步骤:

(decrease p by 1)
return minimum of (a - (p mod a + 1)), (b - (p mod b + 1)) and (c - (p mod c + 1))

示例

让我们看看以下实现以更好地理解:

#include <bits/stdc++.h>
using namespace std;

int solve(int p, int a, int b, int c) {
   p--;
   return min(a - (p % a + 1), min(b - (p % b + 1), c - (p % c + 1)));
}
int main() {
   int p = 2;
   int a = 6;
   int b = 10;
   int c = 9;
   cout << solve(p, a, b, c) << endl;
}

输入

2, 6, 10, 9

输出

4

更新于: 2022年3月3日

184 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告