我是python的新手,在这里遇到这个问题
假设A国的人口为8万居民,每年
持续增长3%,并且B人口为5万居民,增长率为
增长尚不清楚。
编写程序以读取估计的人口增长率
城市B,并根据读取的增长率,您的程序应:
根据报告的增长率检查城市B的人口 将超过城市A的人口;
如果未超过城市B的人口,则您的程序应 打印“ B的人口将克服。”
如果城市B的人口超过了,您的程序应打印“ B城市的人口将超过X年。 “,其中X必须替换 人口B将超过人口B的年数 城市A。
增长率将以大于0的浮点数表示,代表0 B城市的发展。
a = 80000
b = 50000
an = 0
while b <= a:
a = a*0.03
b = b*float(input())/100
an += 1
if a > b:
print("A populacão de B não vai ultrapassar")
if b > a:
print("A populacão da cidade de B vai ultrapassar em'{} anos.".format(an))
我想得到的输出是 在此计划中,人口B的X年要超过人口A,而用X代替实际需要的年数
答案 0 :(得分:0)
使用a人口和b人口的固定值,这是一个简单的方法。
a_population = 80000
b_population = 50000
A_GROWTH_RATE = 0.03
B_GROWTH_RATE = float(input()) / 100
if a_population > b_population and A_GROWTH_RATE >= B_GROWTH_RATE:
print("A populacão de B não vai ultrapassar")
else:
years = 0
while b_population <= a_population:
a_population += a_population * A_GROWTH_RATE
b_population += b_population * B_GROWTH_RATE
years += 1
print("A populacão da cidade de B vai ultrapassar em'{} anos.".format(years))
答案 1 :(得分:0)
当然,您可以使用一个简单的公式来代替使用循环:
import math
a = 80000
b = 50000
pcent_b = float(input())/100
a_growth = 1.03
b_growth = 1 + pcent_b
anos = math.ceil(math.log(b/a, a_growth/b_growth))
if anos > 0:
print("A população da cidade B vai ultrapassar em {} anos.".format(anos))
else:
print("A população de B não vai ultrapassar.")