学费4年后的总费用

时间:2013-07-05 01:16:51

标签: java

我正在从教科书中练习练习问题,但我无法弄清楚如何使用for循环有效地做到这一点。

问题:今年的大学学费是10000美元,每年增加5%。编写一个程序,显示从现在起十年后开始的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;
        }
    }
}

如何通过仅计算一年的学费来解决这个问题?现在我的解决方案是在每次迭代时抛出结果。 (暂无arrayListclass,只介绍了基础知识。)

欲望输出:

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

2 个答案:

答案 0 :(得分:4)

你不需要一个外循环:从现在起十年后获得学费,将今天的学费乘以pow(RATE, 10);这将是你从现在起10年后的新baseTuition

之后,您可以运行一个循环来添加四个数字 - baseTuitionbaseTuition*RATEbaseTuition*RATE*RATEbaseTuition*RATE*RATE*RATE。但是,这也不是必需的:您只需计算几何系列using the well-known formula的总和:

double res = pow(RATE, 10) * (1-pow(RATE, 4)) / (1 - RATE);

答案 1 :(得分:1)

计算复合的数学运算可以表示为:

enter image description here

所以十年后的基础学费将是

10000*Math.pow(1.05,10)16288.94627。然后你可以乘以1.05得到第11年,然后再得到第12年,依此类推。添加每个值,您应该得到答案。

由于这似乎是一个家庭作业问题,我不打算给你解决它的代码。