我在代码中犯了什么错误?

时间:2014-09-22 08:35:09

标签: php

所以我从学校得到了这个问题:

一名学生赢得10万美元的价格并从1月1日起将其存入她的储蓄账户,每年4%的利息。每年年底,她都会提取5,000美元。

如果她达到45岁,会显示不同的信息,否则她可以继续这么久。

我想出了什么:

<?php

$start = 100000;
$year = 1;

do {
    $start = $start - 5000;
    $start = $start * 1.04;
    $year++;
} while ($start > 0);

if ($year > 45) {
    echo "Longer than 45 years";
} else {
    echo "Amount of years: $year";
}

问题:我的老师说答案应该是40,而不是39.有谁知道我的错误在哪里?

2 个答案:

答案 0 :(得分:0)

年应该从0开始,而不是1.你正在使用do [] while语句,而不是一段时间{}

此外,她只有在有现金的情况下才能继续退出,所以内部的守卫()应该是

while($start > 5000)

答案 1 :(得分:0)

使用此:

$start = 100000;
$year = 0;
while ($start > 5000)
{
    $year++;
    $start = $start * 1.04;
    $start = $start - 5000;
}

if ($year > 45)
{
    echo "Longer than 45 years";
}
else
{
    echo "Amount of years: $year";
}