weng_zh 发表于 2022-5-11 21:26

[Python]天天向上

本帖最后由 weng_zh 于 2022-5-13 10:38 编辑

以7天为周期,连续学习前3天能力值不变,第4至7天能力值每天增长前一天的1%。初始能力值为1,连续学习365天后能力值为多少?
如果7天中有1天间断学习则周期从头计算。初始能力值为1,每连续学习10天或15天之后休息1天(分别计算这两种情况),365天后能力值各为多少?
def rest(n):
    power = 1.0# 初始能力值
    period = 1# 七天学习周期

    if n == 0:# 没有休息的情况
      for i in range(1, 366):
            if i % 7 in :
                power *= 1.01
      return power

    for i in range(1, 366):# 有休息的情况

      if i % (n + 1) == 0:# 每n天后休息1天
            study = False
      else:
            study = True

      if study and (period in ):# 前三天能力值不变
            period = (period + 1) % 7
      elif study and (period in ):# 第四至七天每天增长1%
            power *= 1.01
            period = (period + 1) % 7
      else:# 间断学习 周期从头计算
            period = 1
    return power


for x in :
    print('每{}天休息一天,365天后能力值为:{:.2f}'.format(x, rest(x)))

zhjm21 发表于 2022-5-12 08:09

学习了!

hub1314 发表于 2022-5-12 08:18

真棒!跑一下看看:lol

waimenlu 发表于 2022-5-12 08:39

学习了,谢谢

Microcharon 发表于 2022-5-12 09:01

这跟牵涉到数学问题

tfrist 发表于 2022-5-12 10:02

哈哈天天向上!!!加油!{:1_927:}

stertao 发表于 2022-5-12 10:18

运行后的答案。。

weng_zh 发表于 2022-5-13 10:37

stertao 发表于 2022-5-12 10:18
运行后的答案。。

嗯是的,因为题目里问的是每10天和15天休息,把第28行列表里数据改成自己想要的就行了

weng_zh 发表于 2022-5-13 11:44

如果要改成每第n天休息的话,把第13行的 i % (n + 1) == 0 改成 i % n == 0 就好了
页: [1]
查看完整版本: [Python]天天向上