<?php
$amount = 6600;
100 => 0,
200 => 3,
500 => 1,
2000 => 4,
5000 => 1
);
echo "Сумма: $amount\n";
//чек на первые ошибки
$check100 = $amount % 100;
if ($check100 != 0) {
echo "Выдача невозможна: сумма не кратна 100";
} elseif ($amount <= 0) {
echo "Выдача невозможна: сумма меньше или равна нулю";
}
//функция для удобства
function massCheck($bill, $much, $amount) {
$cash = intval($amount/$bill); if ($cash <= $much) {
return $cash;
} elseif ($cash > $much) {
return $much;
}
}
//цикл для расчёта кол-ва купюр
$onlyNumbers = [5000, 2000, 500, 200, 100];
$count = count($onlyNumbers); $pusher = [];
for ($i = 0; $i < $count; $i++) {
$cash = massCheck($onlyNumbers[$i], $bills[$onlyNumbers[$i]], $amount);
if ($amount == 0) {
break;
} elseif ($bills[$onlyNumbers[$i]] > 0){
$cashCheck = $cash*$onlyNumbers[$i];
$amount = $amount-$cashCheck;
}
if ($cash != 0) {
}
}
if ($amount != 0) {
echo "Выдача невозможна: в банкомате не хватает купюр";
}
//клеим, выводим
echo "Выдача возможна, число купюр:\n$res";
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7CgokYW1vdW50ID0gNjYwMDsKCiRiaWxscyA9IGFycmF5ICgKICAgIDEwMCAgICAgPT4gMCwKICAgIDIwMCAgICAgPT4gMywKICAgIDUwMCAgICAgPT4gMSwKICAgIDIwMDAgICAgPT4gNCwKICAgIDUwMDAgICAgPT4gMQopOwoKZWNobyAi0KHRg9C80LzQsDogJGFtb3VudFxuIjsKLy/Rh9C10Log0L3QsCDQv9C10YDQstGL0LUg0L7RiNC40LHQutC4CiRjaGVjazEwMCA9ICRhbW91bnQgJSAxMDA7CmlmICgkY2hlY2sxMDAgIT0gMCkgewogICAgZWNobyAi0JLRi9C00LDRh9CwINC90LXQstC+0LfQvNC+0LbQvdCwOiDRgdGD0LzQvNCwINC90LUg0LrRgNCw0YLQvdCwIDEwMCI7CiAgICBleGl0KCk7Cn0gZWxzZWlmICgkYW1vdW50IDw9IDApIHsKICAgIGVjaG8gItCS0YvQtNCw0YfQsCDQvdC10LLQvtC30LzQvtC20L3QsDog0YHRg9C80LzQsCDQvNC10L3RjNGI0LUg0LjQu9C4INGA0LDQstC90LAg0L3Rg9C70Y4iOwogICAgZXhpdCgpOwp9Ci8v0YTRg9C90LrRhtC40Y8g0LTQu9GPINGD0LTQvtCx0YHRgtCy0LAKZnVuY3Rpb24gbWFzc0NoZWNrKCRiaWxsLCAkbXVjaCwgJGFtb3VudCkgewogICAgJGNhc2ggPSBpbnR2YWwoJGFtb3VudC8kYmlsbCk7CiAgICBpZiAoJGNhc2ggPD0gJG11Y2gpIHsKICAgICAgICByZXR1cm4gJGNhc2g7CiAgICB9IGVsc2VpZiAoJGNhc2ggPiAkbXVjaCkgewogICAgICAgIHJldHVybiAkbXVjaDsKICAgIH0KfQovL9GG0LjQutC7INC00LvRjyDRgNCw0YHRh9GR0YLQsCDQutC+0Lst0LLQsCDQutGD0L/RjtGACiRvbmx5TnVtYmVycyA9IFs1MDAwLCAyMDAwLCA1MDAsIDIwMCwgMTAwXTsKJGNvdW50ID0gY291bnQoJG9ubHlOdW1iZXJzKTsKJHB1c2hlciA9IFtdOwpmb3IgKCRpID0gMDsgJGkgPCAkY291bnQ7ICRpKyspIHsKICAgICRjYXNoID0gbWFzc0NoZWNrKCRvbmx5TnVtYmVyc1skaV0sICRiaWxsc1skb25seU51bWJlcnNbJGldXSwgJGFtb3VudCk7CiAgICBpZiAoJGFtb3VudCA9PSAwKSB7CiAgICAgICAgYnJlYWs7CiAgICB9IGVsc2VpZiAoJGJpbGxzWyRvbmx5TnVtYmVyc1skaV1dID4gMCl7CiAgICAgICAgJGNhc2hDaGVjayA9ICRjYXNoKiRvbmx5TnVtYmVyc1skaV07CiAgICAgICAgJGFtb3VudCA9ICRhbW91bnQtJGNhc2hDaGVjazsKICAgIH0KICAgIGlmICgkY2FzaCAhPSAwKSB7CiAgICAgICAgYXJyYXlfcHVzaCgkcHVzaGVyLCRjYXNoIC4gIngkb25seU51bWJlcnNbJGldIik7CiAgICB9Cn0KCmlmICgkYW1vdW50ICE9IDApIHsKICAgIGVjaG8gItCS0YvQtNCw0YfQsCDQvdC10LLQvtC30LzQvtC20L3QsDog0LIg0LHQsNC90LrQvtC80LDRgtC1INC90LUg0YXQstCw0YLQsNC10YIg0LrRg9C/0Y7RgCI7CiAgICBleGl0KCk7Cn0KLy/QutC70LXQuNC8LCDQstGL0LLQvtC00LjQvAokcmVzID0gaW1wbG9kZSgnICcsICRwdXNoZXIpOwplY2hvICLQktGL0LTQsNGH0LAg0LLQvtC30LzQvtC20L3QsCwg0YfQuNGB0LvQviDQutGD0L/RjtGAOlxuJHJlcyI7