<?php
error_reporting(-1);
$amount = 53000;
$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";
}
}
- Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
- Сумма: 53000
Выдача возможна, число купюр:
10X5000 5X500 5X100
preferences:
206.36 ms | 403 KiB | 287 Q