- floor: documentation ( source)
- implode: documentation ( source)
- error_reporting: documentation ( source)
<?php
error_reporting(-1);
$amount = 54000;
$bills = array(
5000 => 10,
1000 => 0,
500 => 5,
100 => 23
);
$answer = array();
echo "Сумма: {$amount}\n";
if ($amount <= 0){
echo "Выдача невозможна: введенная сумма меньше или равна 0\n";
}else if ($amount % 100 <> 0){
echo "Выдача невозможна: введенная сумма не кратна 100\n";
}else {
foreach($bills as $par => $quantity){
$i = floor($amount/$par);
if ($i > 0 && $quantity > 0){
if ($i <= $quantity){
$amount = $amount - $par * $i;
$answer[] = $i . "X" . $par;
}else {
$amount = $amount - $par * $quantity;
$answer[] = $quantity . "X" . $par;
}
}
}
if ($amount == 0){
echo "Выдача возможна, число купюр:\n";
$string = implode(" ", $answer);
echo "{$string}\n";
}else {
echo "Выдача невозможна, недостаточно купюр.\n";
}
}