<?php
/*Требуемая сумма*/
$amount=54500;
/*Запас наличных*/
100=>23,
500=>5,
1000=>0,
5000=>200
);
$total_sum=0; /*общая сумма */
foreach ($bills as $nominal=>$quantity){
$total_sum+=($nominal*$quantity);
}
if($total_sum<$amount){
echo "Выдача невозможна: недостаточно средств в терминале\n";
}
else{
if($amount%100>0){
echo "Невозможно выдать данную сумму, нет купюр мельче 100\n";
}
else{
echo "Сумма - $amount \n";
$quantity_5000=intval($amount/5000);//требуемое количество 5000 купюр if($quantity_5000>$bills[5000]){
$quantity_5000=$bills[5000];
}
$amount=$amount-$quantity_5000*5000;
$quantity_1000=intval($amount/1000);//требуемое количество 1000 купюр if($quantity_1000>$bills[1000]){
$quantity_1000=$bills[1000];
}
$amount=$amount-$quantity_1000*1000;
$quantity_500=intval($amount/500);//требуемое количество 500 купюр if($quantity_500>$bills[500]){
$quantity_500=$bills[500];
}
$amount=$amount-$quantity_500*500;
$quantity_100=intval($amount/100);//требуемое количество 100 купюр if($quantity_100>$bills[100]){
$quantity_100=$bills[100];
}
$amount=$amount-$quantity_100*100; //остаток от вычитаний всех возможных произведений номиналов по порядку
if($amount==0){
echo "Выдача возможна, число купюр:\n";
if($quantity_5000!=0){
echo "{$quantity_5000}x5000 ";
}
if($quantity_1000!=0){
echo "{$quantity_1000}x1000 ";
}
if($quantity_500!=0){
echo "{$quantity_500}x500 ";
}
if($quantity_100!=0){
echo "{$quantity_100}x100 ";
}
echo "\n";
}
else{
echo "Недостаточно купюр нужного номинала введите другую сумму\n";
}
}
}