<?php
//Сколько выдать
$input = 54500;
//Купюры в наличии
100 => 23,
500 => 5,
1000 => 0,
5000 => 200
);
//Количество выданных купюр
100 => 0,
500 => 0,
1000 => 0,
5000 => 0
);
$money = $input;
$error = '';
if ($input < 0) {
$error = 'Сумма меньше нуля';
} elseif (($input % 100) != 0) {
$error = 'Число не кратно ста';
} else {
foreach ($bills as $bill => $count) {
$issued[$bill] = min(floor($money / $bill), $count); $money -= ($issued[$bill] * $bill);
}
if ($money != 0) {
$error = 'Недостаточно купюр';
}
$billsCount = '';
foreach ($issued as $bill => $count) {
if ($count != 0) {
$billsCount .= "{$bill}x{$count} ";
}
}
}
echo "Сумма: {$input}\n";
if ($error != '') {
echo "Выдача невозможна: {$error}\n";
} else {
echo "Выдача возможна, число купюр:\n{$billsCount}";
}
PD9waHAKLy/QodC60L7Qu9GM0LrQviDQstGL0LTQsNGC0YwKJGlucHV0ID0gNTQ1MDA7CgovL9Ca0YPQv9GO0YDRiyDQsiDQvdCw0LvQuNGH0LjQuAokYmlsbHMgPSBhcnJheSgKICAgIDEwMCA9PiAyMywKICAgIDUwMCA9PiA1LAogICAgMTAwMCA9PiAwLAogICAgNTAwMCA9PiAyMDAKKTsKJGJpbGxzID0gYXJyYXlfcmV2ZXJzZSgkYmlsbHMsIHRydWUpOwovL9Ca0L7Qu9C40YfQtdGB0YLQstC+INCy0YvQtNCw0L3QvdGL0YUg0LrRg9C/0Y7RgAokaXNzdWVkID0gYXJyYXkoCiAgICAxMDAgPT4gMCwKICAgIDUwMCA9PiAwLAogICAgMTAwMCA9PiAwLAogICAgNTAwMCA9PiAwCik7CiRtb25leSA9ICRpbnB1dDsKJGVycm9yID0gJyc7CgppZiAoJGlucHV0IDwgMCkgewogICAgJGVycm9yID0gJ9Ch0YPQvNC80LAg0LzQtdC90YzRiNC1INC90YPQu9GPJzsKfSBlbHNlaWYgKCgkaW5wdXQgJSAxMDApICE9IDApIHsKICAgICRlcnJvciA9ICfQp9C40YHQu9C+INC90LUg0LrRgNCw0YLQvdC+INGB0YLQsCc7Cn0gZWxzZSB7CiAgICBmb3JlYWNoICgkYmlsbHMgYXMgJGJpbGwgPT4gJGNvdW50KSB7CiAgICAgICAgJGlzc3VlZFskYmlsbF0gPSBtaW4oZmxvb3IoJG1vbmV5IC8gJGJpbGwpLCAkY291bnQpOwogICAgICAgICRtb25leSAtPSAoJGlzc3VlZFskYmlsbF0gKiAkYmlsbCk7CiAgICB9CgogICAgaWYgKCRtb25leSAhPSAwKSB7CiAgICAgICAgJGVycm9yID0gJ9Cd0LXQtNC+0YHRgtCw0YLQvtGH0L3QviDQutGD0L/RjtGAJzsKICAgIH0KCiAgICAkYmlsbHNDb3VudCA9ICcnOwogICAgJGlzc3VlZCA9IGFycmF5X3JldmVyc2UoJGlzc3VlZCwgdHJ1ZSk7CiAgICBmb3JlYWNoICgkaXNzdWVkIGFzICRiaWxsID0+ICRjb3VudCkgewogICAgICAgIGlmICgkY291bnQgIT0gMCkgewogICAgICAgICAgICAkYmlsbHNDb3VudCAuPSAieyRiaWxsfXh7JGNvdW50fSAiOwogICAgICAgIH0KICAgIH0KfQoKZWNobyAi0KHRg9C80LzQsDogeyRpbnB1dH1cbiI7CmlmICgkZXJyb3IgIT0gJycpIHsKICAgIGVjaG8gItCS0YvQtNCw0YfQsCDQvdC10LLQvtC30LzQvtC20L3QsDogeyRlcnJvcn1cbiI7Cn0gZWxzZSB7CiAgICBlY2hvICLQktGL0LTQsNGH0LAg0LLQvtC30LzQvtC20L3QsCwg0YfQuNGB0LvQviDQutGD0L/RjtGAOlxueyRiaWxsc0NvdW50fSI7Cn0K