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

Làm cho 3 số thành 0 trong C++

Cho 3 số, đếm số bước tối ưu để đưa cả 3 về 0. Mỗi bước trừ 1 từ 2 số bất kỳ.

Ví dụ

a=4, b=4, c=6

Output: 7

Các bước: (4,4,6)→(3,3,6)→(2,3,5)→(1,3,4)→(0,3,3)→(0,2,2)→(0,1,1)→(0,0,0)

Cách tiếp cận

  • Trừ 1 từ 2 số có tổng lớn hơn số còn lại
  • Tìm số bước tối thiểu

Code C++

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

int maxSteps(int a, int b, int c) {
    int res = 0;
    while (a + b > c && a > 0 && b > 0) {
        a--; b--; res++;
    }
    res += min(c, a + b);
    return res;
}

int main() {
    int a = 4, b = 4, c = 6;
    cout << maxSteps(a, b, c) << endl;
    return 0;
}

Kết quả

7

Với a=4, b=4, c=6 cần 7 bước.