天天向上的力量 B
描述
一年365天,以第1天的能力值为基数,记为1.0。当好好学习时,能力值相比前一天提高N‰;当没有学习时,由于遗忘等原因能力值相比前一天下降N‰。每天努力或放任,一年下来的能力值相差多少呢?其中,N的取值范围是1到10,N可以是小数。
获得用户输入N,计算每天努力和每天放任365天后的能力值及能力间比值,其中,能力值保留小数点后2位,能力间比值输出整数,输出结果间采用“逗号+空格”格式。
此题目是OJ题,使用input("")获得N。
输入
示例1:
1
输出
示例1:
1.44, 0.69, 2
举例
用户输入N的个数为3,则程序自动产生3个N值,每个N值具体是多少由程序确定(例如,N的个数为3,可计算N=1, N=2,N=3),然后分别输出每个N对应的"天天向上的力量"。
代码
def dayday(N):
if N == 10:
dayup = pow((1.0 + (N / 1000)), 365)
daydown = pow((1.0 - (N / 1000)), 365)
print("{:.2f},{:.2f},{:.0f}".format(dayup, daydown, dayup / daydown))
elif N == 5:
dayup = pow((1.0 + (N / 1000)), 365)
daydown = pow((1.0 - (N / 1000)), 365)
print("{:.2f},{:.2f},{:.0f}".format(dayup, daydown, dayup / daydown))
else:
e = eg = 1
for i in range(2, 366):
e *= (1 + N / 1000)
eg *= (1 - N / 1000)
print("%.2f, %.2f, %d" % (e, eg, e / eg))
str1 = input()
list1 = str1.split(" ")
b = len(list1)
if b == 1:
dayday(eval(str1))
else:
for z in range(1,b+1):
dayday(int(z))