题干:
一年365天,以第1天的能力值为基数,记为1.0。当好好学习时,能力值相比前一天提高N‰;
当没有学习时,由于遗忘等原因能力值相比前一天下降N‰。每天努力或放任,一年下来的能力值相差多少呢?N可以是小数。
获得用户输入N,计算每天努力和每天放任365天后的能力值及能力间比值,
其中,能力值保留小数点后2位,能力间比值输出整数(小数部分,4舍5入原则),输出结果间采用英文逗号分隔。
此题目是IPO题,使用input()获得N。
输入案例:1
输出结果:1.44,0.69,2
提示:输出的是3个数据,分别是 努力的结果,放任的结果,能力的比值
思想:
基数是一个变直,这里提供一个方案为1,每天的变量N的千分之一,依次乘。
能力间比值输出整数(小数部分,4舍5入原则)------->这里指要使用round()
方案一:
使用python的for函数,具体for函数如何使用请自行搜索
N = input()
N = float(N)
N = float(N/1000)
i= 0
#dayup = (N+1)**2
#daydown = (1-N)**2
dayup = 1
dayup = float(dayup)
daydown = 1
daydown = float(daydown)
for i in range(365):
dayup *= (N+1)
daydown *=(1-N)
x = (dayup/daydown)
y = round(x,)
print("{:.2f},{:.2f},{:}".format(dayup,daydown,y))
方案二:
使用python的while方法
a=1.0
b=1.0
N=float(input())
i=365
while i>0 :
a+=a*N*0.001
b-=b*N*0.001
i-=1;
print("{:.2f},{:.2f},{:.0f}".format(a,b,a/b))
方案三
使用pow()方法
x=1.0
N=eval(input())
n=N/1000
dayup=pow(x+n,365)
daydown=pow(x-n,365)
a=float(dayup/daydown)
print("{:.2f},{:.2f},{:}".format(dayup,daydown,round(a,)))
三种方案,三种思想,运用知识方法不同。可以自己进行仔细查看思考
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)