个人思路仅供参考,问题在我自己的理解上再重新描述一下;因为停车不规范,所以每停一辆车可能导致的实际占用长度不止1,而且每次可能不同,这样每次停一辆车,都要重新计算剩余长度,如果还可以停就可继续计算,不可以挺就停止,这时统计出已停车辆。
递归算法(英语:recursion algorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法(复制的百度结果)
这个问题,我们拆解下就是 限定长度车道每停一辆车,计算剩余长度,如果剩余长度还可以停,那就再停车计算剩余;直至剩余长度不可停,累计出已停车数量。
一辆车占用长度1的停车位,停车带总长度30。
如果每辆车都按规范停车,那么就是可以停放30辆车;
如果不按规范停车,假设每辆车都占用了长度为2的停车位,也就是说车停在[0-0.5],[1.5-2]....,以此类推可以停15辆车;
综上所述,你可以想象一下,你有30个1x1x1的正方体和一个1x1x30的长方体,每次在长方体的随便位置放正方体,正方体中间可以有空隙,记录每次最多放入正方体的个数,让后求平均值;
你是不懂递归?还是不知道怎么写代码?