循环,使用,以及如何阻止它

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了循环,使用,以及如何阻止它相关的知识,希望对你有一定的参考价值。

我的问题是:假设一门课程的一个学分是100美元,而且这个学费每年增加4.3%。该课程的学分会花费多少年三倍?

重写了这个简单的代码很多次,但似乎无法得到它。我想我会以错误的方式解决这个问题。

import java.util.Scanner;


public class MorenoJonathonCreditHourCostCalculator {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        double cost = 100;
        int years=0;
        double sum=200;
        double total;

        while (cost >= sum) {
            total = cost + 4.03;
            ++years;
        }

        System.out.println("The tuition will double in " + years + " years");
    }
}
答案

增加率为4.3%意味着在每一步中,该值比之前的值大4.3%。这可以通过以下公式来描述:

V_n+1 = V_n + (V_n * 4.3%)  
V_n+1 = V_n + (V_n * 0.043)  
V_n+1 = V_n * (1 + 0.043)  
V_n+1 = V_n * 1.043

在Java中,这归结为简单的cost *= 1.043;

您首先声明“课程的学分将花费多少年三倍”,但在您的课程中,您实际上会检查课程的学费增加一倍。

我假设你想计算三重成本,所以你的程序现在应该是这样的:

public static void main(String[] args) {
    double cost = 100;
    double tripleCost = 3 * cost;
    int years = 0;

    while(cost < tripleCost) {
        cost *= 1.043;
        years++;
    }
    System.out.println("It took " + years + " years.");
}

其中给出了以下输出:

It took 27 years.
另一答案

我不确定你为什么要增加成本,因为它是一个乘法函数:

FV(未来值)= PV(现值)(1 + r)^ n

300 = 100(1.043)^ n你在哪里寻找'n'

设置while循环,在未来值低于300时运行并添加到'n'。

以上是关于循环,使用,以及如何阻止它的主要内容,如果未能解决你的问题,请参考以下文章

循环阻止异步请求被发送。为什么以及如何解决?

如何阻止片段一直弹出到根片段? [导航组件]

如何阻止音乐曲目在 Libgdx 中循环播放

线程运行一个我无法控制的无限操作。如何阻止它? [复制]

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销

在哪里以及如何使用片段填充我的标签