我正在做教科书上的练习题,但我不知道如何使用 for
循环有效地完成此任务。
问题:今年的大学学费为 10000 美元,并且每年增加 5%。编写一个程序来显示从现在起 10 年后 4 年学费的总费用。
这是我到目前为止想到的。
public class ComputeFutureTuition {
public static void main(String[] args) {
double baseTuition = 10000;
final double RATE = 1.05;
System.out.println("The total cost of 4 years tution");
for (int i = 0; i < 10; i++) {
// keep track of the next 4 year's tuition
double fourYearTuition = 0;
fourYearTuition = baseTuition + (baseTuition * RATE)
+ (baseTuition * RATE * RATE) + (baseTuition * RATE * RATE * RATE);
System.out.printf("%2d yrs from now: $%5.2f\n",
(i + 1), fourYearTuition);
// Increase the tuition by 5%
baseTuition = baseTuition * 1.05;
}
}
}
如何通过每年只计算一次学费来解决这个问题?现在我的解决方案是在每次迭代时抛出结果。 (还没有 arrayList
或 class
,只是介绍了基础知识)。
期望输出:
The total cost of 4 years tution
1 yrs from now: $43101.25
2 yrs from now: $45256.31
3 yrs from now: $47519.13
4 yrs from now: $49895.08
5 yrs from now: $52389.84
6 yrs from now: $55009.33
7 yrs from now: $57759.80
8 yrs from now: $60647.79
9 yrs from now: $63680.18
10 yrs from now: $66864.19
最佳答案
您不需要外循环:要获得十年后的学费,请将今天的学费乘以pow(RATE, 10)
;这将是您 10 年后的新baseTuition
。
之后,您可以运行一个循环来添加四个数字 - baseTuition
、baseTuition*RATE
、baseTuition*RATE*RATE
、和baseTuition*RATE*RATE*RATE
。然而,这也不是必需的:您所需要的只是计算几何级数 using the well-known formula 的总和。 :
double res = pow(RATE, 10) * (1-pow(RATE, 4)) / (1 - RATE);
关于java - 4年后的学费总额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17479857/