<?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) {
if (($count > 0) && ($money >= $bill)) {
$issued[$bill] = floor($money / $bill); if ($count > $issued[$bill]) {
$money %= $bill;
} else {
$issued[$bill] = $count;
$money = $money - ($bill * $count);
}
} else {
continue;
}
}
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+INGB0YLQsCc7Cn0gZWxzZSB7CiAgICBmb3JlYWNoICgkYmlsbHMgYXMgJGJpbGwgPT4gJGNvdW50KSB7CiAgICAgICAgaWYgKCgkY291bnQgPiAwKSAmJiAoJG1vbmV5ID49ICRiaWxsKSkgewogICAgICAgICAgICAkaXNzdWVkWyRiaWxsXSA9IGZsb29yKCRtb25leSAvICRiaWxsKTsKICAgICAgICAgICAgaWYgKCRjb3VudCA+ICRpc3N1ZWRbJGJpbGxdKSB7CiAgICAgICAgICAgICAgICAkbW9uZXkgJT0gJGJpbGw7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkaXNzdWVkWyRiaWxsXSA9ICRjb3VudDsKICAgICAgICAgICAgICAgICRtb25leSA9ICRtb25leSAtICgkYmlsbCAqICRjb3VudCk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCRtb25leSAhPSAwKSB7CiAgICAgICAgJGVycm9yID0gJ9Cd0LXQtNC+0YHRgtCw0YLQvtGH0L3QviDQutGD0L/RjtGAJzsKICAgIH0KCiAgICAkYmlsbHNDb3VudCA9ICcnOwogICAgJGlzc3VlZCA9IGFycmF5X3JldmVyc2UoJGlzc3VlZCwgdHJ1ZSk7CiAgICBmb3JlYWNoICgkaXNzdWVkIGFzICRiaWxsID0+ICRjb3VudCkgewogICAgICAgIGlmICgkY291bnQgIT0gMCkgewogICAgICAgICAgICAkYmlsbHNDb3VudCAuPSAieyRiaWxsfXh7JGNvdW50fSAiOwogICAgICAgIH0KICAgIH0KfQoKZWNobyAi0KHRg9C80LzQsDogeyRpbnB1dH1cbiI7CmlmICgkZXJyb3IgPSAnJykgewogICAgZWNobyAi0JLRi9C00LDRh9CwINC90LXQstC+0LfQvNC+0LbQvdCwOiB7JGVycm9yfVxuIjsKfSBlbHNlIHsKICAgIGVjaG8gItCS0YvQtNCw0YfQsCDQstC+0LfQvNC+0LbQvdCwLCDRh9C40YHQu9C+INC60YPQv9GO0YA6XG57JGJpbGxzQ291bnR9IjsKfQo=