Java程序技术问询:年涨7%的学费翻倍年限计算问题
修正学费翻倍计算程序的问题
嘿,我注意到你写的这个学费估算程序有两处需要调整的地方,这样才能准确计算出学费翻倍所需的年限:
存在的问题
- 变量类型拼写错误:Java里整数类型是小写的
int,你写成了Int,这会直接导致编译错误。 - 涨幅计算逻辑错误:你现在每次给学费加固定的700美元,但实际上每年7%的涨幅应该是基于当年学费的7%,而不是初始学费的7%。固定加700是单利计算,不符合实际的复利增长规则。
修正后的代码
public class FutureTuition { public static void main(String[] args) { double tuition = 10000; int year = 0; // 初始年份设为0,因为还没开始涨幅 // 每年按当前学费的7%增长,直到学费翻倍 while (tuition < 20000) { tuition *= 1.07; // 等价于 tuition = tuition + tuition * 0.07 year++; } System.out.println("Tuition will be doubled in " + year + " years"); } }
代码说明
- 把
Int改成了正确的int类型,解决编译报错问题。 - 调整涨幅计算方式:用
tuition *= 1.07实现每年基于当前学费的7%增长,完全符合题目要求的复利增长逻辑。 - 初始年份设为0,因为一开始学费是10000,还没经过任何涨幅,这样统计的年限更精准。
运行这段代码后,输出结果是Tuition will be doubled in 11 years,这个结果也符合金融里的72法则(72除以涨幅百分比,大概就是翻倍所需的年限:72/7≈10.28,所以实际需要11年)。
内容的提问来源于stack exchange,提问作者Rpro
相关产品推荐
相关产品推荐

