python语言程序设计基础 习题 天天向上的力量(math.pow)

实例1:

一年365天,,以第一天的能力值为基数1.0,当好好学习时能力值相比前一天提高1%,没有学习时能力值相比前天要降低1%,每天努力和每天放任,一年下来的能力值相差多少?

解析:

如果每天都好好学习的话,就是计算1.01的365次方,为什么是365呢?因为这个能力值1是在第一天就拥有的,然后第一天好好学习就需要乘1.01,作为第一天的收获,第一天为1.0*(1+1%),第二天为1.0*(1+1%)**2.........第365天为1.0*(1+1%)**364。x**y在python中的意思为x的y次方。同理可得每天放任的话就是计算0.99的365次方。使用math库中的math.pow函数就可以很容易就写出了。

代码:

import math//引用math库
dayup=math.pow((1+0.01),365)
daydown=math.pow((1-0.01),365)
c=dayup-daydown
print(round(dayup,3))//输出每天努力的年终能力值
print(round(daydown,3))输出每天放任的年终能力值
print(round(c,3))输出相差的能力值

运行结果截图

 

实例2

一年365天,,初始值1.0,工作一天水平提高N,不工作时水平不下降,一周连续工作4天,试编写程序运算结果?当N=0.01时

解析:

一年有365/7=52周还余一天,每周工作四天,则一年工作208天。假设这一年的第一天为周一,则这一年的最后一天也就是多余的一天为周一。

我们再假设工作时间为

方案一,周1 2 3 4,那么这一年工作的时间就是209天。

代码:

import math
x=1
N=0.01

for i in range(1,366):
  if i%7 in[1,2,3,4]:
    x=x*(1+N)
  else:
    x=x
print(round(x,3))

运行结果

8.001

方案二,周2 3 4 5,那么这一年工作的时间为208天,

代码:

import math
x=1
N=0.01

for i in range(1,366):
if i%7 in[5,2,3,4]:
x=x*(1+N)
else:
x=x
print(round(x,3))

运行结果

7.922

方案三,周3 4 5 6,那么这一年工作的时间就是208天。

代码:

import math
x=1
N=0.01

for i in range(1,366):
  if i%7 in[6,5,3,4]:
    x=x*(1+N)
  else:
    x=x
print(round(x,3))

运行结果

方案四,周4 5 6 7,那么这一年工作的时间就是208天。

代码:

import math
x=1
N=0.01

for i in range(1,366):
  if i%7 in[4,5,6,0]:
    x=x*(1+N)
  else:
    x=x
print(round(x,3))

运行结果

 7.922

方案五,周5 6 7 1,那么这一年工作的时间就是209天。

代码:

import math
x=1
N=0.01

for i in range(1,366):
  if i%7 in[5,6,0,1]:
    x=x*(1+N)
  else:
    x=x
print(round(x,3))

运行结果

8.001

方案六,周6 7 1 2,那么这一年工作的时间就是209天。

代码:

import math
x=1
N=0.01

for i in range(1,366):
  if i%7 in[1,2,0,6]:
    x=x*(1+N)
  else:
    x=x
print(round(x,3))

运行结果

8.001

方案七,周7 1 2 3,那么这一年工作的时间就是209天。

代码:

import math
x=1
N=0.01

for i in range(1,366):
  if i%7 in[1,2,3,4]:
    x=x*(1+N)
  else:
    x=x
print(round(x,3))

运行结果

8.001

 总结:一种是包括周一的要多一天,为209天。一种是不包括的为208天。

posted @ 2019-09-14 23:00  水晶bingbing  阅读(8008)  评论(1编辑  收藏  举报