java - 4年后的学费总额

标签 java

我正在做教科书上的练习题,但我不知道如何使用 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;
        }
    }
}

如何通过每年只计算一次学费来解决这个问题?现在我的解决方案是在每次迭代时抛出结果。 (还没有 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

最佳答案

您不需要外循环:要获得十年后的学费,请将今天的学费乘以pow(RATE, 10);这将是您 10 年后的新baseTuition

之后,您可以运行一个循环来添加四个数字 - baseTuitionbaseTuition*RATEbaseTuition*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/

相关文章:

java - 为每个模块在自己的模块上运行 spring boot 单元测试

java - Proguard 将重写的方法保留在扩展另一个接口(interface)的接口(interface)内

java - 用java读取文本文件(带制表符)

java - 使用 long 将指针从 JNI 传递到 Java

java - Eclipse Luna 的 Scala 插件

Java:淘汰旧,进新

java - 在不同的任务中启动一个新的 Android Activity

java - 这是在java中使用MVC的正确方法吗?

java - 如何仅在请求 servlet 时在 Tomcat 中初始化 webapp

java - 使用java在终端中运行多个命令?