<?php
$amount = 6600;
100 => 23,
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";
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7CgokYW1vdW50ID0gNjYwMDsKCiRiaWxscyA9IGFycmF5ICgKICAgIDEwMCAgICAgPT4gMjMsCiAgICAyMDAgICAgID0+IDMsCiAgICA1MDAgICAgID0+IDEsCiAgICAyMDAwICAgID0+IDQsCiAgICA1MDAwICAgID0+IDEKKTsKCmVjaG8gItCh0YPQvNC80LA6ICRhbW91bnRcbiI7Ci8v0YfQtdC6INC90LAg0L/QtdGA0LLRi9C1INC+0YjQuNCx0LrQuAokY2hlY2sxMDAgPSAkYW1vdW50ICUgMTAwOwppZiAoJGNoZWNrMTAwICE9IDApIHsKICAgIGVjaG8gItCS0YvQtNCw0YfQsCDQvdC10LLQvtC30LzQvtC20L3QsDog0YHRg9C80LzQsCDQvdC1INC60YDQsNGC0L3QsCAxMDAiOwogICAgZXhpdCgpOwp9IGVsc2VpZiAoJGFtb3VudCA8PSAwKSB7CiAgICBlY2hvICLQktGL0LTQsNGH0LAg0L3QtdCy0L7Qt9C80L7QttC90LA6INGB0YPQvNC80LAg0LzQtdC90YzRiNC1INC40LvQuCDRgNCw0LLQvdCwINC90YPQu9GOIjsKICAgIGV4aXQoKTsKfQovL9GE0YPQvdC60YbQuNGPINC00LvRjyDRg9C00L7QsdGB0YLQstCwCmZ1bmN0aW9uIG1hc3NDaGVjaygkYmlsbCwgJG11Y2gsICRhbW91bnQpIHsKICAgICRjYXNoID0gaW50dmFsKCRhbW91bnQvJGJpbGwpOwogICAgaWYgKCRjYXNoIDw9ICRtdWNoKSB7CiAgICAgICAgcmV0dXJuICRjYXNoOwogICAgfSBlbHNlaWYgKCRjYXNoID4gJG11Y2gpIHsKICAgICAgICByZXR1cm4gJG11Y2g7CiAgICB9Cn0KLy/RhtC40LrQuyDQtNC70Y8g0YDQsNGB0YfRkdGC0LAg0LrQvtC7LdCy0LAg0LrRg9C/0Y7RgAokb25seU51bWJlcnMgPSBbNTAwMCwgMjAwMCwgNTAwLCAyMDAsIDEwMF07CiRjb3VudCA9IGNvdW50KCRvbmx5TnVtYmVycyk7CiRwdXNoZXIgPSBbXTsKZm9yICgkaSA9IDA7ICRpIDwgJGNvdW50OyAkaSsrKSB7CiAgICAkY2FzaCA9IG1hc3NDaGVjaygkb25seU51bWJlcnNbJGldLCAkYmlsbHNbJG9ubHlOdW1iZXJzWyRpXV0sICRhbW91bnQpOwogICAgaWYgKCRhbW91bnQgPT0gMCkgewogICAgICAgIGJyZWFrOwogICAgfSBlbHNlaWYgKCRiaWxsc1skb25seU51bWJlcnNbJGldXSA+IDApewogICAgICAgICRjYXNoQ2hlY2sgPSAkY2FzaCokb25seU51bWJlcnNbJGldOwogICAgICAgICRhbW91bnQgPSAkYW1vdW50LSRjYXNoQ2hlY2s7CiAgICB9CiAgICBpZiAoJGNhc2ggIT0gMCkgewogICAgICAgIGFycmF5X3B1c2goJHB1c2hlciwkY2FzaCAuICJ4JG9ubHlOdW1iZXJzWyRpXSIpOwogICAgfQp9CgppZiAoJGFtb3VudCAhPSAwKSB7CiAgICBlY2hvICLQktGL0LTQsNGH0LAg0L3QtdCy0L7Qt9C80L7QttC90LA6INCyINCx0LDQvdC60L7QvNCw0YLQtSDQvdC1INGF0LLQsNGC0LDQtdGCINC60YPQv9GO0YAiOwogICAgZXhpdCgpOwp9Ci8v0LrQu9C10LjQvCwg0LLRi9Cy0L7QtNC40LwKJHJlcyA9IGltcGxvZGUoJyAnLCAkcHVzaGVyKTsKZWNobyAi0JLRi9C00LDRh9CwINCy0L7Qt9C80L7QttC90LAsINGH0LjRgdC70L4g0LrRg9C/0Y7RgDpcbiRyZXMiOw==