Java 为网站上的新用户编制复合增长率
我正在写一个程序,它将打印出一个网站以每月4%的速度从10亿用户增长到15亿(然后是20亿用户)需要多少个月。然而,我要么在数学上有问题,要么在某个地方破坏了我的代码 以下是我迄今为止的代码:Java 为网站上的新用户编制复合增长率,java,Java,我正在写一个程序,它将打印出一个网站以每月4%的速度从10亿用户增长到15亿(然后是20亿用户)需要多少个月。然而,我要么在数学上有问题,要么在某个地方破坏了我的代码 以下是我迄今为止的代码: public class Exercise_432 { public static void main(String[] args) { double InitUsers = 1000000000; double NewUsers = 0;
public class Exercise_432 {
public static void main(String[] args) {
double InitUsers = 1000000000;
double NewUsers = 0;
double rate = 0.04;
System.out.println("How many months will it take to reach 1.5 billion users?\n" +
"How many months will it take to reach 2 billion users?");
for (int months = 1; months <= 1000; ++months)
{
NewUsers = InitUsers * Math.pow(1.0 + rate, months);
if(NewUsers >= 1500000000) {
}else if (NewUsers >= 2000000000){
}
System.out.printf("%d%n", months);
}
}
}
公共课堂练习\u 432{
公共静态void main(字符串[]args){
双用户=100000000;
双新用户=0;
倍率=0.04;
System.out.println(“达到15亿用户需要多少个月?\n”+
“要达到20亿用户需要多少个月?”;
对于(整数个月=1;个月=150000000){
}else if(新用户>=2000000000){
}
System.out.printf(“%d%n”,月);
}
}
}
有人能帮我,或者至少给我指出正确的方向吗
谢谢。在您的代码中,您的
for循环执行无限,因为它中的条件总是满足的。你需要写出正确的条件。即使您可以使用for循环,但我个人更喜欢当条件位于不递增的变量上时使用while循环。在这个特定的问题中,我们必须增加月数
,并检查用户
上的条件。所以一段时间的循环会更好。请参见下面的实现
public class Exercise_432 {
public static void main(String[] args) {
double users = 1; //Assuming it to be 1 Billion.
double rate = 0.04;
int months = 0;
while(users < 1.5) { //Stops looping if users count is >= 1.5 Billion
users = users + (users * rate); //total new users = old users + new users for that month
months++;
if(users >= 1.5) {
System.out.println(months);
}
}
while(users < 2) { //Stops looping if users count is >= 2 Billion
users = users + (users * rate);
months++;
if(users >= 2) {
System.out.println(months);
}
}
}
}
公共课堂练习\u 432{
公共静态void main(字符串[]args){
double users=1;//假设为10亿。
倍率=0.04;
整月=0;
而(用户数<1.5){//如果用户数>=15亿,则停止循环
用户=用户+(用户*比率);//当月新用户总数=旧用户+新用户
月++;
如果(用户>=1.5){
系统输出打印项次(月);
}
}
而(用户数<2){//如果用户数>=20亿,则停止循环
用户=用户+(用户*费率);
月++;
如果(用户>=2){
系统输出打印项次(月);
}
}
}
}
for(int months=1;months+=1;months<1000)
对于循环语法,这是错误的,您不能直接进行计算吗2/1.5=1.04^m
,求解m
。取10亿本金*利率,并将其存储在变量中。使用一个while循环来实现这一点,每次当它少于15亿或20亿时,months++?我如何打破循环并打印出达到15亿用户的月数?@justLearning在我写的while循环中查看用户的条件。