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

Đếm số lần nhấn nút tối thiểu để điều chỉnh âm lượng TV bằng C++

Mô tả bài toán

Amal muốn âm lượng b, Bimal đổi thành a. Remote có nút ±1, ±2, ±5. Tìm số nhấn ít nhất để từ a về b (âm lượng không âm).

Ví dụ

a=5,b=14 → chênh 9. Nhấn +5 (10), +2, +2 → 3 nhấn.

Thuật toán

Chênh d = |a-b|. Dùng tham lam: số nút 5 = d/5, phần dư r = d%5. Nút cho r: (r+1)/2 (vì 1,2,3,4 → 1,1,2,2 nút). Tổng = d/5 + (d%5+1)/2.

Code C++

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

int solve(int a, int b) {
    int d = abs(a - b);
    return d/5 + (d%5 + 1)/2;
}

int main() {
    int a=5,b=14;
    cout << solve(a,b) << endl;
    return 0;
}

Đầu vào / Đầu ra

Input: 5, 14

Output: 3