这是我想解决的问题。
“墨西哥人口为6200万,年增长率为7%。美国现有人口为2.8亿,年增长率为2%。如果这两个国家保持目前的增长率在增长方面,墨西哥的人口将在多少年内超过美国的一半?你的计划应该回答这个问题。“
好的,所以这是我到目前为止的代码。当我运行程序时,我收到此错误。
不确定如何修复它。任何人都可以帮忙吗? :/
import java.util.Scanner;
public class Whatever {
public static void main (String [] args){
Scanner in = new Scanner (System.in);
int mex = 62000000;
int usa = 280000000;
int years = 0;
double t = 0 ;
while(mex(Math.pow(1.07, t)) <= usa(Math.pow(1.02, t)))
{
t++;
years = t;
if (mex > (usa * 0.5));
break;
}
System.out.println ("Mexicos population is half of America in " + years + "years");
}
}
修改 的
对于任何想知道我最终得到代码工作的人。这是代码。
import java.util.Scanner;
公共课无论{
public static void main(String [] args){
Scanner scan = new Scanner (System.in);
double mex = 62000000;
double usa = 280000000;
double years = 0;
while(mex <= usa/2)
{
years++;
mex = mex * 1.07;
usa = usa * 1.02;
}
System.out.println ("Mexicos population is half of America in " + years + " years ");
}
}
答案 0 :(得分:3)
mex是一个整数。
我认为你试图成倍增加。
如果你想要乘法,请使用mex *(Math.pow(1.07,t)。
答案 1 :(得分:1)
你的问题在这里:
while(mex(Math.pow(1.07, t)) <= usa(Math.pow(1.02, t)))
在变量向Java发出信号后,将括号放在您尝试调用具有该名称的函数(在本例中为mex
和usa
)。 你实际上要做的是将这些值相乘,所以你需要使用星号:
while(mex*(Math.pow(1.07, t)) <= usa*(Math.pow(1.02, t)))
答案 2 :(得分:0)
在您的代码中,您定义了几个变量:
int mex = 62000000;
int usa = 280000000;
int years = 0;
double t = 0 ;
但是,您尝试将它们用作函数:
while(mex(Math.pow(1.07, t)) <= usa(Math.pow(1.02, t)))
在Java中,这些变量用作函数的参数;不是相反!
答案 3 :(得分:0)
您已将括号应用于&#34; mex
&#34;你的while循环中的表达式(好像它是一个函数),其中&#34; mex
&#34;只是一个常规变量。使用&#34; usa&#34; ..
while(mex(Math.pow(1.07, t)) <= usa(Math.pow(1.02, t)))
^^^ ^
答案 4 :(得分:-2)
要进行乘法运算,您需要使用*
,即
while(mex * (Math.pow(1.07, t)) <= usa * (Math.pow(1.02, t)))