PHP付钱找钱算法

 PHP基础  2021-02-06  admin  66  89

PHP付钱找钱算法

/**
 * @param $arr_money
 * @param $money
 * @author http://centphp.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
)


转载必须注明出处:

PHP付钱找钱算法 —— centhp.com

相关推荐


discuz 加解密函数authcode()的实现原理,生成安全的url参数

discuz 加解密函数authCode()并不是PHP的内置函数,它是康盛开发的一个使用异或运算进行加密和解密的函数,可以说这是康盛对中国的PHP界作出的重大贡献。康盛自己的产品如Discuz,UCenter等以及许多使用PHP的中国公司都用这个函数进行加密。但是使用authCode()原函数作为url参数,获取后有部分解密不出,所以通过添加一个参数控制url安全的。/** *@param$s

Des 加密实现类

Des 加密实现类&lt;?php //+---------------------------------------------------------------------- //|ThinkPHP[WECANDOITJUSTTHINKIT] //+--------------------------------------------------------------------

php中奖概率算法,刮刮卡,大转盘等抽奖算法

php中奖概率算法,刮刮卡,大转盘等抽奖算法/** *经典的概率算法, *$arrPrize是一个预先设置的奖品数组, *假设数组为:array(100,200,300,400), *开始是从1,1000这个概率范围内筛选第一个数是否在出现概率范围之内, *如果不在,则将概率空间的值减去刚刚的那个数字的概率空间, *在本例当中就是减去100,也就是说第二个数是在1,900这个范围内筛选

php根据总金额生成指定个数的随机红包,红包算法

php根据总金额生成指定个数的随机红包,红包算法/** *根据总金额生成指定个数的随机红包 *1、微信红包,每人最少分得1分钱 *2、每人分得到的金额是随机分配的 *3、每次生成红包就生成了对应领取红包的结果 *生成随机红包 *ClassredPacket */ classredPacket { //总金额 private$total=0; //红包数量 private$