fork download
  1. <?php
  2. $amount = 54500; //требуемая сумма
  3. $bills = array(
  4. 100 => 23,
  5. 500 => 5,
  6. 1000 => 0,
  7. 5000 => 200
  8. ); //запас наличных
  9.  
  10. function giveMeMyMoney($amount, $array, $bill)
  11. {
  12. static $quantity = "Выдача возможна, число купюр:\n";
  13. $needed = floor($amount / $bill);
  14. if ($needed <= $array[$bill])
  15. {
  16. $amount -= $needed * $bill;
  17. $quantity .= "{$needed}x$bill ";
  18. }
  19. else
  20. {
  21. $amount -= $array[$bill] * $bill;
  22. $quantity .= "{$array[$bill]}x$bill ";
  23. }
  24.  
  25. if ($bill == 5000)
  26. giveMeMyMoney($amount, $array, 1000);
  27. elseif ($bill == 1000)
  28. giveMeMyMoney($amount, $array, 500);
  29. elseif ($bill == 500)
  30. giveMeMyMoney($amount, $array, 100);
  31. elseif ($bill == 100 && $amount > 0)
  32. echo "Выдача невозможна: недостаточно купюр.";
  33. else
  34. echo $quantity;
  35. }
  36. echo "Сумма: {$amount}\n";
  37. if ($amount <= 100)
  38. echo "Выдача невозможна: слишком маленькое число.";
  39. elseif (($amount % 100) != 0)
  40. echo "Выдача невозможна: сумма не кратна 100.";
  41. else
  42. giveMeMyMoney($amount, $bills, 5000);
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
Сумма: 54500
Выдача возможна, число купюр:
10x5000 0x1000 5x500 20x100