fork(2) download
  1. <?php
  2.  
  3.  
  4. /*Требуемая сумма*/
  5.  
  6. $amount=54500;
  7.  
  8. /*Запас наличных*/
  9.  
  10. $bills=array(
  11. 100=>23,
  12. 500=>5,
  13. 1000=>0,
  14. 5000=>200
  15. );
  16.  
  17. $total_sum=0; /*общая сумма */
  18.  
  19. foreach ($bills as $nominal=>$quantity){
  20. $total_sum+=($nominal*$quantity);
  21. }
  22.  
  23. if($total_sum<$amount){
  24. echo "Выдача невозможна: недостаточно средств в терминале\n";
  25. }
  26. else{
  27.  
  28. if($amount%100>0){
  29. echo "Невозможно выдать данную сумму, нет купюр мельче 100\n";
  30. }
  31. else{
  32. echo "Сумма - $amount \n";
  33.  
  34. $quantity_5000=intval($amount/5000);//требуемое количество 5000 купюр
  35. if($quantity_5000>$bills[5000]){
  36. $quantity_5000=$bills[5000];
  37. }
  38. $amount=$amount-$quantity_5000*5000;
  39.  
  40. $quantity_1000=intval($amount/1000);//требуемое количество 1000 купюр
  41. if($quantity_1000>$bills[1000]){
  42. $quantity_1000=$bills[1000];
  43. }
  44. $amount=$amount-$quantity_1000*1000;
  45.  
  46. $quantity_500=intval($amount/500);//требуемое количество 500 купюр
  47. if($quantity_500>$bills[500]){
  48. $quantity_500=$bills[500];
  49. }
  50. $amount=$amount-$quantity_500*500;
  51.  
  52. $quantity_100=intval($amount/100);//требуемое количество 100 купюр
  53. if($quantity_100>$bills[100]){
  54. $quantity_100=$bills[100];
  55. }
  56. $amount=$amount-$quantity_100*100; //остаток от вычитаний всех возможных произведений номиналов по порядку
  57.  
  58. if($amount==0){
  59. echo "Выдача возможна, число купюр:\n";
  60.  
  61. if($quantity_5000!=0){
  62. echo "{$quantity_5000}x5000 ";
  63. }
  64. if($quantity_1000!=0){
  65. echo "{$quantity_1000}x1000 ";
  66. }
  67. if($quantity_500!=0){
  68. echo "{$quantity_500}x500 ";
  69. }
  70. if($quantity_100!=0){
  71. echo "{$quantity_100}x100 ";
  72. }
  73. echo "\n";
  74. }
  75. else{
  76. echo "Недостаточно купюр нужного номинала введите другую сумму\n";
  77. }
  78. }
  79. }
  80.  
Success #stdin #stdout 0.01s 82880KB
stdin
Standard input is empty
stdout
Сумма - 54500 
Выдача возможна, число купюр:
10x5000 5x500 20x100