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 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告