我正在開發一個Java 2類的項目,該項目必須在用戶輸入的天數內顯示有機體的種羣增長。我能夠使用while循環實現該方法,但難以將其轉換爲遞歸方法。使用遞歸方法而不是while循環
while(day <= totalDays)
{
if (day == 1){
System.out.println(organs);
day++; //day one there is no increase
}
else{
organs = organs + organs*(increase/100); //add % increase of organisms
System.out.println(organs);
day++;}
}
這是我迄今爲止遞歸方法的嘗試失敗。
public static double showPopulation(int dayNum, int days, double organisms,
double dailyIncrease)
{
if(dayNum == totalDays)
{
return organisms + (organisms*dailyIncrease);
}
else
return showPopulation(dayNum+1, days, organisms, dailyIncrease) + organisms*dailyIncrease;
爲什麼你需要遞歸,如果你有一個完全有效的迭代求解? – NPE 2014-09-25 17:14:47
遞歸在兩種情況下是有意義的:何時它確實有助於使代碼變得更短,更清晰或者任務本身具有遞歸性質。 – Andrey 2014-09-25 17:16:48
...或者當你在Erlang工作,沒有任何選擇:) – Pointy 2014-09-25 17:22:14