循环,使用,以及如何阻止它
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'。
以上是关于循环,使用,以及如何阻止它的主要内容,如果未能解决你的问题,请参考以下文章