3v4l.org

run code in 200+ php & hhvm versions
<?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"; } }
based on 2V227
Output for 5.6.0 - 5.6.30, hhvm-3.12.14 - 3.17.3, 7.0.0 - 7.2.6
Сумма: 54000 Выдача возможна, число купюр: 10X5000 5X500 15X100