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

问题描述 投票:-1回答:2

我的问题是:假设一门课程的一个学分是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");
    }
}
java math while-loop
2个回答
1
投票

增加率为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.

0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.