Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ đếm phút chờ để gặp ít nhất một bơi lội

Cho p, a, b, c. Ba bơi lội về bên trái bể sau 0, a, 2a...; 0, b, 2b...; 0, c, 2c... phút. Đến lúc p, chờ bao lâu để gặp ít nhất một người.

Ví dụ

Với p=2, a=6, b=10, c=9, đầu ra 4. Lúc 2 đến, bơi lội 1 về lúc 6 → chờ 4.

Giải thuật

Giảm p đi 1 (vì đến sau phút p). Thời gian chờ cho bơi lội chu kỳ t là t - (p % t + 1). Lấy min của 3 giá trị.

Mã C++

#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, a = 6, b = 10, c = 9;
    cout << solve(p, a, b, c) << endl;
}

Đầu vào / Đầu ra

Input: 2, 6, 10, 9
Output: 4