Mỗi một phương án trả tiền có dạng một vec-tơ , trong đó sao cho .
Chú ý: Bài toán này chỉ yêu cầu tìm một nghiệm bất kỳ.
Ta có thể cài đặt duyệt toàn bộ bằng quay lui hoặc xét dãy bit
Duyệt quay lui:
int x[nmax];//Vec-tơ nghiệm
void BT(int i, long long sum) {
    if (i > n) {
        if (sum == M) {
            inKQ();
            exit(0);    //Kết thúc chương trình, (không phải return)
        }
        return;
    }
    for (int j = 0; j <= 1; j++) {
        if (j * t[i] + sum <= M) {
            x[i] = j;
            BT(i + 1, sum + j * t[i]);
        }
    }
}