<?php
/* Требуемая сумма */
$amount = 6600;
/* Запас наличных */
5000,
2000,
500,
200
);
1,
4,
1,
3
);
$nominalsCount = count($bills);
for ($i = 0; $i < $nominalsCount; $i++) {
$j = 0;
$billsCounter = $billsCount;
$sum = $bills[$i];
$billsCounter[$i]--;
echo "================\n";
echo "Итерация {$i}\n\nсумма:$sum\n";
while ($sum < $amount) {
if ($sum + $bills[$j] <= $amount && $billsCounter[$j] > 0) {
$sum += $bills[$j];
$billsCounter[$j]--;
echo "+ номинал: $bills[$j]\n";
echo "сумма: $sum\n\n";
} else {
$j++;
if ($j > $nominalsCount - 1) {
break;
}
}
}
if ($sum != $amount) {
echo "Невозможно выдать\n";
}
}
?>
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7CgovKiDQotGA0LXQsdGD0LXQvNCw0Y8g0YHRg9C80LzQsCAqLwokYW1vdW50ID0gNjYwMDsKCi8qINCX0LDQv9Cw0YEg0L3QsNC70LjRh9C90YvRhSAqLwokYmlsbHMgPSBhcnJheSgKCTUwMDAsCgkyMDAwLAoJNTAwLAoJMjAwCik7CgokYmlsbHNDb3VudCA9IGFycmF5KAoJMSwKCTQsCgkxLAoJMwopOwoKJG5vbWluYWxzQ291bnQgPSBjb3VudCgkYmlsbHMpOwoKZm9yICgkaSA9IDA7ICRpIDwgJG5vbWluYWxzQ291bnQ7ICRpKyspIHsKCgkkaiA9IDA7CgkkYmlsbHNDb3VudGVyID0gJGJpbGxzQ291bnQ7Cgkkc3VtID0gJGJpbGxzWyRpXTsKCSRiaWxsc0NvdW50ZXJbJGldLS07CgoJZWNobyAiPT09PT09PT09PT09PT09PVxuIjsKCWVjaG8gItCY0YLQtdGA0LDRhtC40Y8geyRpfVxuXG7RgdGD0LzQvNCwOiRzdW1cbiI7CgoJd2hpbGUgKCRzdW0gPCAkYW1vdW50KSB7CgkJaWYgKCRzdW0gKyAkYmlsbHNbJGpdIDw9ICRhbW91bnQgJiYgJGJpbGxzQ291bnRlclskal0gPiAwKSB7CgkJCSRzdW0gKz0gJGJpbGxzWyRqXTsKCQkJJGJpbGxzQ291bnRlclskal0tLTsKCQkJZWNobyAiKyDQvdC+0LzQuNC90LDQuzogJGJpbGxzWyRqXVxuIjsKCQkJZWNobyAi0YHRg9C80LzQsDogJHN1bVxuXG4iOwoJCX0gZWxzZSB7CgkJCSRqKys7CgkJCWlmICgkaiA+ICRub21pbmFsc0NvdW50IC0gMSkgewoJCQkJYnJlYWs7CgkJCX0KCQl9Cgl9IAoJaWYgKCRzdW0gIT0gJGFtb3VudCkgewoJCWVjaG8gItCd0LXQstC+0LfQvNC+0LbQvdC+INCy0YvQtNCw0YLRjFxuIjsKCX0KfQoKPz4KCgo=