php 这个小题目怎么做?
说明可以用那些方法://第一题:假设某人有1000元,每过一个路口须缴费一次,缴费规则为当他的现金大于500元//时每次缴纳5%,如果小于等于500元时每次缴纳50元,请...
说明可以用那些方法:
//第一题:假设某人有1000元,每过一个路口须缴费一次,缴费规则为当他的现金大于500元
//时每次缴纳5%,如果小于等于500元时每次缴纳50元,请问可以过几个路口!
能用下面这个结构写吗?谢谢
for($rmb = 1000, $cross = 1; $rmb > 500; $cross++) {
if($rmb <= 500) {
$rmb -=50;
} else {
$rmb *= 0.95;
}
} 展开
//第一题:假设某人有1000元,每过一个路口须缴费一次,缴费规则为当他的现金大于500元
//时每次缴纳5%,如果小于等于500元时每次缴纳50元,请问可以过几个路口!
能用下面这个结构写吗?谢谢
for($rmb = 1000, $cross = 1; $rmb > 500; $cross++) {
if($rmb <= 500) {
$rmb -=50;
} else {
$rmb *= 0.95;
}
} 展开
1个回答
展开全部
可以,你的思路是正确的,但是有2个问题,
判断条件有问题,因为你这里for语句有对$rmb进行处理,但当$rmb > 500时才会进入你的for循环处理中,故当$rmb小于500以后就不会做处理,应该改为$rmb >= 50,才符合你的情况;
另外你的$cross应该从0开始计数,否则的话,当还没有开始过路口的话,你就已经当成过了1个路口了。最后注意要利用最后的一个$cross
下面是我自己写的一个:
$rmb = 1000;
$cross = 0;
while ($rmb >= 50)
{
if ($rmb > 500)
{
$rmb = $rmb * (1- 0.05);
$cross++;
}
else if ($rmb <= 500)
{
$rmb -= 50;
$cross++;
}
}
echo $cross;
本回答被提问者采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询