Khả năng đổi tiền theo mệnh giá

Lập trình C++

Bài toán. Dung có a đồng muốn đổi tiền gồm các tờ mệnh giá 50, 20 và 10. Hỏi Dung có thể đổi tiền được không? Nếu có ghi ra số tờ tiền ít nhất Dung có được, nếu không đổi được thì ghi ra -1. Ví dụ:

TIEN.INP

TIEN.OUT

440

1

Code tham khảo:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    freopen("TIEN.INP","r",stdin);
    freopen("TIEN.OUT","w",stdout);
    int a;
    cin >> a;
    a %= 50;
    a %= 20;
    a %= 10;
    if (a == 0) cout << 1;
    else cout << -1;
    return 0;
}