这是程序的正确预期输出吗?

时间:2017-09-29 20:13:10

标签: java

我需要帮助确定这是否是下面问题的正确输出。我写了我认为正确的但我想要一些验证。第一次在这里发帖,所以如果我做错了,我会道歉。

墨西哥的人口为6200万,并且正以每年的速度增长 率7%。美国目前的人口是2.8亿 以每年2%的速度增长。如果这两个国家是 保持目前的增长率,墨西哥将持续多少年 人口超过美国的一半?你的计划 应该回答这个问题。

这就是我写的

public class Population
{
public static void main(String[] args)
{
    int year = 0;

    int mexicoPop = 62000000;
    double mexRate = mexicoPop * .07;

    int usPop = 280000000;
    double usRate = usPop * .02;

    int usHalf = 140000000;
    for(int i=mexicoPop; i<=usHalf; i++)
    {
        mexicoPop += mexRate;
        usPop += usRate;
        usHalf = usPop/2;
        year++;         
    }
    System.out.println("Mexico's population will be more than half of the US in " + year + " years");

}
}

我得到1011741824的输出但是不知道在给定数学问题的情况下这是否真的是正确的数字。如果我知道这个数字,那么判断我的程序是否正确会更容易。谁能帮忙解决这个问题。提前感谢您的时间。

1 个答案:

答案 0 :(得分:1)

数学上,你必须做这样的事情直到

  

墨西哥的人口是美国的一半以上?

int numberOfYears = 0;
while(mexicoPop < usPop / 2)
{
    mexicoPop = mexicoPop + mexicoPop * .07; // since the RHS would be changing every year
    usPop = usPop + usPop * .02;    
    numberOfYears++; 
}
System.out.println(numberOfYears);