PHP付钱找钱算法
/** * @param $arr_money * @param $money * @author http://code.cent123.com * @return array */ function payMoney($arr_money, $money): array { $k = count($arr_money); $arr = []; for ($i = 0; $i < $k; $i++) { $temp = (int)($money / $arr_money[$i]); $money = $money % $arr_money[$i]; if ($temp > 0) { $arr[$arr_money[$i]] = $temp; } } return $arr; }
使用:
// 参与分配的金额 $arr_money = array(100, 50, 20, 10, 5, 2, 1); $money = 319; $num = payMoney($arr_money, $money); print_r($num); Array ( [100] => 3 [10] => 1 [5] => 1 [2] => 2 )