循环应该计算城镇需要多少年才能看到其人口大于或等于当前人口。
int "initialPopulation" 年初的人口。
双“百分比”每年增长的百分比。
int "visitors" 来到该镇居住的游客(每年新增居民)。
int "currentPopulation" 当前人口。
所以我试图返回年数,但是无论 InitialPopulation 和 CurrentPopulation 之间的区别是什么,循环只循环一次,我希望它也循环直到它到达 CurrentPopulation。
那是我的问题,在教科书上测试了逻辑,应该真的可以通过,所以要么我的逻辑坏了,要么我不理解某种While循环规则。
如果我的描述不太清楚,请发表评论。提前致谢。
public static int GetYears(int initialPopulation,double percent,int visitors,int currentPopulation)
{
if (initialPopulation <= 0 || visitors < 0 || currentPopulation <= 0 || currentPopulation < initialPopulation)
{
throw new ArgumentException(null);
}
else if (percent < 0 || percent > 100)
{
throw new ArgumentOutOfRangeException(nameof(percent));
}
else
{
int countOfYear = 0;
while (initialPopulation < currentPopulation)
{
int surplus = ((int)(initialPopulation * percent) + visitors) - initialPopulation;
initialPopulation += surplus;
countOfYear++;
}
return countOfYear;
}
}
}