Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

최소한 한 명의 수영 선수를 만나기 위해 몇 분을 기다려야 하는지 계산하는 C++ 프로그램

<시간/>

네 개의 숫자 p, b, c가 있다고 가정합니다. 수영장이 있고 세 명의 수영 선수가 있습니다. 수영장을 건너 다시 돌아오는 데 각각 , b 및 c 분이 걸립니다. 따라서 첫 번째 수영자는 시작 시간 0, a, 2a, 3a,... 분 후에 수영장 왼쪽에 있습니다. 두 번째는 0, b, 2b, 3b,... 분에 있을 것이고 세 번째는 0, c, 2c, 3c, ...에 있을 것입니다. p분 후에 수영장을 방문하면 그들이 수영을 시작한 후 어떻게 해야 하는지를 찾아야 합니다. 수영장 왼쪽에서 수영하는 사람 중 한 명 이상을 확보하려면 최소한 기다려야 하는 시간이 많습니다.

따라서 입력이 p =2와 같으면; a =6; b =10; c =9이면 출력은 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