Bài toán trả tiền theo mệnh giá

163
Lập trình C++

Bài toán: Nam cần chi số tiền là X đô la để trả cho một món hàng. Biết hiện tại Nam chỉ có các tờ tiền mệnh giá 50, 20 và 10. Hãy tìm số tờ tiền ít nhất Nam sẽ trả cho người bán hàng?

Yêu cầu: Nếu Nam trả được, ghi ra tổng số tờ tiền và số tờ tiền mỗi loại Nam phải trả cho người bán hàng, ngược lại ghi ra -1.

Code tham khảo:

#include <iostream>
using namespace std;
int main() {
    long n, i, res, t1, t2, t3;
    freopen("XCHANGE.INP","r",stdin);
    freopen("XCHANGE.OUT","w",stdout);
    cin >> n;
    if (n % 50 % 20 % 10 != 0) {
        cout << -1;
    }
    else {
        res = n / 50;
        t1 = res;
        n %= 50;
        t2 = n / 20;
        res += t2;
        n %= 20;
        t3 = n / 10;
        res += t3;
        cout << res << " " << t1 << " " << t2 << " " << t3;
    }
    return 0;
}