PHP程序员面试算法宝典
上QQ阅读APP看书,第一时间看更新

1.12 经过这个路口多少次

难度系数:★★★☆☆

被考查系数:★★★☆☆

题目描述:

假设某人有100,000现金。每经过一次路口需要进行一次交费。交费规则为当他身上的现金数大于50,000时,每次需要交现金的5%,当现金小于等于50,000时,每次需要交5,000。请写一个程序计算此人可以经过多少次这个路口。

分析与解答:

依题可知,某人拥有的总现金为100,000,初始过路口次数为0,当金额条件不满足5,000时,则停止过路口。所以可以通过循环求解过路口次数,当他现金大于50,000时,剩余金额为:总金额×(1-5%),当他现金小于等于50,000时,剩余金额为:总金额减少5000,依次循环累加过路口次数,直到不符合条件退出循环。

实现代码如下:

程序的运行结果为