今天遇到了一个面试题,觉得挺值得学习的,所以记录了下来,分享给大家!
某个商城中用户消费1元送1积分,商家为了刺激用户消费,用户消费1000元送1200积分,消费2000元送2500积分,消费5000元送8000积分。
(1)用户消费1500元,应送____积分,消费4000元应送____积分,消费8500元应送____积分
(2)请写出一个函数实现上述逻辑,输入为用户消费的金额,输出为送的积分数量
答:这个是递归思维
代码如下:
function get_int($int)
{
$int = intval($int);
if($int >= 5000) {return 8000 + get_int($int-5000);}
if($int >= 2000) {return 2500 + get_int($int-2000);}
if($int >= 1000) {return 1200 + get_int($int-1000);}
return $int;
}
echo get_int(1500); // 1700
echo get_int(4000); // 5000
echo get_int(8500); // 12200