fork(1) download
  1. <?php
  2.  
  3.  
  4. $amount = 6600;
  5.  
  6. $bills = array(
  7. 100 => 23,
  8. 200 => 3,
  9. 500 => 1,
  10. 1000 => 0,
  11. 2000 => 4,
  12. 5000 => 1
  13. );
  14.  
  15. krsort($bills);
  16.  
  17. echo "Сумма: {$amount}\n";
  18.  
  19. if($amount % 100 > 0){
  20. echo "Выдача невозможна: сумма не кратна 100.";
  21. return;
  22. }
  23. elseif($amount <= 0){
  24. echo "Выдача невозможна: сумма меньше или равна нулю.";
  25. return;
  26. }
  27.  
  28. $count = 0;
  29. $result = "";
  30.  
  31. foreach($bills as $key => $value){
  32. $count = floor($amount / $key);
  33. if($value == 0){
  34. continue;
  35. }
  36. elseif($amount == 0 || $count == 0){
  37. continue;
  38. }
  39. else{
  40. if($count > $value){
  41. $amount -= $key * $value;
  42. $result .= "{$value}x{$key} ";
  43. $count = 0;
  44. }
  45. else{
  46. $result .= "{$count}x{$key} ";
  47. $amount -= $key * $count;
  48. $count = 0;
  49. }
  50. }
  51. }
  52.  
  53. if($amount > 0){
  54. echo "Выдача невозможна: в банкомате недостаточно купюр.";
  55. }
  56. else{
  57. echo "Выдача возможна, число купюр:\n{$result}";
  58. }
Success #stdin #stdout 0.02s 24680KB
stdin
Standard input is empty
stdout
Сумма: 6600
Выдача возможна, число купюр:
1x5000 1x500 3x200 5x100