<?php
$amount = 54100; //Общая сумма
$result = ''; //Расчет купюр
$canReceive = 0; //Количество денег, которое сможет получить человек, в случае недостатка купюр
100 => 23,
500 => 5,
1000 => 0,
5000 => 200
);
// Сортировка купюр по убыванию
//Удаляем купюры количество которых равно 0
foreach ($bills as $note => $quantity) {
if ($quantity == 0){
}
}
//Проверка на возможные ошибки
if ($amount % 100 != 0) {
echo "Выдача не возможна: Сумма не кратна 100";
} elseif ($amount < 0) {
echo "Выдача не возможна: Сумма меньше 0";
} elseif ($bills == []) {
echo "В банкомате нет денег";
}
foreach ($bills as $note => $quantity) {
//если общая сумма больше купюры с текущим номиналом
if ($note < $amount) {
//считаем, сколько можем взять купюр с таким номиналом
$preCount = floor($amount/$note); //учитываем количество таких купюр в банкомате
$count = ($preCount < $quantity) ? $preCount : $quantity;
//количество денег сможем получить
$canReceive += $note * $count;
$amount -= $note * $count;
$result .= "$count x $note ";
}
}
//если купюр хватает, то $amount = 0, если же нет, то $amount > 0
if ($amount == 0) {
echo "Выдача возможна, число купюр:\n$result";
} elseif ($amount > 0) {
echo "Выдача невозможна, недостаточно купюр в банкомате.\nВозможно получить $canReceive";
}
PD9waHAKZXJyb3JfcmVwb3J0aW5nKC0xKTsKJGFtb3VudCA9IDU0MTAwOwkvL9Ce0LHRidCw0Y8g0YHRg9C80LzQsAokcmVzdWx0ID0gJyc7CQkvL9Cg0LDRgdGH0LXRgiDQutGD0L/RjtGACiRjYW5SZWNlaXZlID0gMDsJLy/QmtC+0LvQuNGH0LXRgdGC0LLQviDQtNC10L3QtdCzLCDQutC+0YLQvtGA0L7QtSDRgdC80L7QttC10YIg0L/QvtC70YPRh9C40YLRjCDRh9C10LvQvtCy0LXQuiwg0LIg0YHQu9GD0YfQsNC1INC90LXQtNC+0YHRgtCw0YLQutCwINC60YPQv9GO0YAKJGJpbGxzID0gYXJyYXkoCgkxMDAJCT0+IDIzLAoJNTAwIAk9PiA1LAoJMTAwMCAJPT4gMCwKCTUwMDAgCT0+IDIwMAopOwovLyDQodC+0YDRgtC40YDQvtCy0LrQsCDQutGD0L/RjtGAINC/0L4g0YPQsdGL0LLQsNC90LjRjgprcnNvcnQoJGJpbGxzKTsgCgovL9Cj0LTQsNC70Y/QtdC8INC60YPQv9GO0YDRiyDQutC+0LvQuNGH0LXRgdGC0LLQviDQutC+0YLQvtGA0YvRhSDRgNCw0LLQvdC+IDAKZm9yZWFjaCAoJGJpbGxzIGFzICRub3RlID0+ICRxdWFudGl0eSkgewoJaWYgKCRxdWFudGl0eSA9PSAwKXsKCQl1bnNldCgkYmlsbHNbJG5vdGVdKTsgCgl9Cn0KCi8v0J/RgNC+0LLQtdGA0LrQsCDQvdCwINCy0L7Qt9C80L7QttC90YvQtSDQvtGI0LjQsdC60LgKaWYgKCRhbW91bnQgJSAxMDAgIT0gMCkgewoJZWNobyAi0JLRi9C00LDRh9CwINC90LUg0LLQvtC30LzQvtC20L3QsDog0KHRg9C80LzQsCDQvdC1INC60YDQsNGC0L3QsCAxMDAiOwoJZXhpdCgpOwp9IGVsc2VpZiAoJGFtb3VudCA8IDApIHsKCWVjaG8gItCS0YvQtNCw0YfQsCDQvdC1INCy0L7Qt9C80L7QttC90LA6INCh0YPQvNC80LAg0LzQtdC90YzRiNC1IDAiOwoJZXhpdCgpOwp9IGVsc2VpZiAoJGJpbGxzID09IFtdKSB7CgllY2hvICLQkiDQsdCw0L3QutC+0LzQsNGC0LUg0L3QtdGCINC00LXQvdC10LMiOwoJZXhpdCgpOwp9CgoKZm9yZWFjaCAoJGJpbGxzIGFzICRub3RlID0+ICRxdWFudGl0eSkgewoJLy/QtdGB0LvQuCDQvtCx0YnQsNGPINGB0YPQvNC80LAg0LHQvtC70YzRiNC1INC60YPQv9GO0YDRiyDRgSDRgtC10LrRg9GJ0LjQvCDQvdC+0LzQuNC90LDQu9C+0LwgCglpZiAoJG5vdGUgPCAkYW1vdW50KSB7CQkJCgkvL9GB0YfQuNGC0LDQtdC8LCDRgdC60L7Qu9GM0LrQviDQvNC+0LbQtdC8INCy0LfRj9GC0Ywg0LrRg9C/0Y7RgCDRgSDRgtCw0LrQuNC8INC90L7QvNC40L3QsNC70L7QvAkJCQkJCQkJCgkJJHByZUNvdW50ID0gZmxvb3IoJGFtb3VudC8kbm90ZSk7CQoJLy/Rg9GH0LjRgtGL0LLQsNC10Lwg0LrQvtC70LjRh9C10YHRgtCy0L4g0YLQsNC60LjRhSDQutGD0L/RjtGAINCyINCx0LDQvdC60L7QvNCw0YLQtQkJCQkJCQoJCSRjb3VudCA9ICgkcHJlQ291bnQgPCAkcXVhbnRpdHkpID8gJHByZUNvdW50IDogJHF1YW50aXR5OwkKCS8v0LrQvtC70LjRh9C10YHRgtCy0L4g0LTQtdC90LXQsyDRgdC80L7QttC10Lwg0L/QvtC70YPRh9C40YLRjAoJCSRjYW5SZWNlaXZlICs9ICRub3RlICogJGNvdW50OwkJCQkJCQkJCgkJJGFtb3VudCAtPSAkbm90ZSAqICRjb3VudDsJCQkJCQkJCQkKCQkkcmVzdWx0IC49ICIkY291bnQgeCAkbm90ZSAiOwkJCQkJCQkJCgl9Cn0KCi8v0LXRgdC70Lgg0LrRg9C/0Y7RgCDRhdCy0LDRgtCw0LXRgiwg0YLQviAkYW1vdW50ID0gMCwg0LXRgdC70Lgg0LbQtSDQvdC10YIsINGC0L4gJGFtb3VudCA+IDAKaWYgKCRhbW91bnQgPT0gMCkgewoJZWNobyAi0JLRi9C00LDRh9CwINCy0L7Qt9C80L7QttC90LAsINGH0LjRgdC70L4g0LrRg9C/0Y7RgDpcbiRyZXN1bHQiOwp9IGVsc2VpZiAoJGFtb3VudCA+IDApIHsKCWVjaG8gItCS0YvQtNCw0YfQsCDQvdC10LLQvtC30LzQvtC20L3QsCwg0L3QtdC00L7RgdGC0LDRgtC+0YfQvdC+INC60YPQv9GO0YAg0LIg0LHQsNC90LrQvtC80LDRgtC1Llxu0JLQvtC30LzQvtC20L3QviDQv9C+0LvRg9GH0LjRgtGMICRjYW5SZWNlaXZlIjsKfQ==