现在QQ发普通红包(等额红包)的算法都是填的多少个红包和多少个包。今天我想说的是整数发的红包如果除不尽的话应该怎么发(例如100元发3个)。这种情况必然会除不尽,所以写了一个算法。
public static function normal($num,$money){ $permoney = round($money/$num,2); $arr = []; for($i=0;$i<$num;$i++){ $arr[$i] = $permoney; } $total = array_sum($arr); $a = round(($total-$money),2); $nums = abs(intval($a*100)); if($a>0){ for($i=0;$i<$nums;$i++){ $arr[$i] = $arr[$i]-0.01; } }else{ for($i=0;$i<$nums;$i++){ $arr[$i] = $arr[$i]+0.01; } } return $arr; }