2017-09-29 71 views
-3

我需要幫助確定這是否是下面這個問題的正確輸出。我寫了我認爲正確的東西,但我想要驗證一下。第一次在這裏發佈,所以我很抱歉,如果我做了任何不正確的事情。這是程序的正確預期輸出嗎?

墨西哥的人口爲62萬,在年度 率7%的速度增長。美國目前的人口爲280萬,是 在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的輸出,但不知道如果這實際上是給定的數學問題的正確數量。如果我知道這個數字,那麼判斷我的程序是否正確會更容易。任何人都可以協助這一點。預先感謝您的時間。

+0

您沒有計算器? –

+1

(我會說,1011741824年似乎是一個很長的時間。) –

+0

這是一個數學問題或編程問題? – shmosel

回答

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); 
+0

我建議下次做自己的作業。而不是採取別人的解決方案,不應該直接提供國際海事組織,而是花時間思考。 –