大家好!比如说有1.2亿人口,每年增长8%。我想有一个从 1990 年到 2020 年的 DO 循环来说明人口超过 1.25 亿的年份。伪代码或 Fortran 代码将不胜感激。
问问题
93 次
3 回答
4
对于哪些循环是必要的或适当的,这不是问题。简单方程
num_years = log(125.0/120.0)/log(1.08)
(计算结果大约0.53
为 )是所有必要的。这是对复利计算公式的直接重写,即
compound_amt = initial_amt * (1+interest_rate)**num_years
在这种情况下initial_amt = 120*10**6
,compound_amt = 125*10**6
和interest_rate = 8%
。
于 2013-05-05T17:46:47.797 回答
2
很容易找到解决您问题的 Fortran 循环教程。例如,请参见此处。但一般来说,你想要这样的东西:
sum=120e6
startyear=1990
do i = 1,30
sum = sum + sum*8./100.
if sum > 125e6 then
write(*,*), "Year ", i+startyear, " population exceeded ", sum
end if
end do
于 2013-05-05T13:46:26.800 回答
0
population = 120000.0
year = 1990
loop:
population = population + (population * 0.08)
year = year + 1
if (population > 125000.0) go to print_done
if (year > 2020) go to print_not_found
go to loop
print_done:
print "The population was " population " in the year " year
stop
print_not_found:
print "Searched to year " year " and the population only reached " population
stop
请注意,在检查人口之前或之后是否应该增加年份是一个问题。这取决于您是想要年初还是年底的人口(假设初始值是年初)。
于 2013-05-05T13:48:31.053 回答