Python 3.6.7

母牛问题

题目描述:有一头母牛,它每年年初生一头小母牛。
每头小母牛从第 4 个年头开始,每年年初也生一头小母牛。(别问我公牛上哪去了……)
请编程实现计算在第 n 年的时候,共有多少头母牛?

输入:年份 n
输出:母牛的数量

示例
第 1 年有 1 头母牛
第 2 年有 2 头母牛
第 3 年有 3 头母牛
第 4 年有 4 头母牛
第 5 年有 6 头母牛
第 6 年有 9 头母牛
第 7 年有 13 头母牛
第 8 年有 19 头母牛
第 9 年有 28 头母牛

def cow1(n):"""循环计算big表示成熟母牛,small表示小母牛小母牛经过三年(从列表里走过3个位置)就变成成熟母牛成熟母牛有多少只当年就会新生多少小母牛(放在small最后)"""big, small = 0, [0, 1, 0]for _ in range(n):big += small.pop(0)small.append(big)return big + sum(small)def cow21(n):"""递归牛群总数 = 去年总数 + 今年新生儿数量今年新生儿数量 = 今年的成熟母牛数量今年的成熟母牛数量 = 3年前牛群总数"""return cow21(n - 1) + cow21(n - 3) if n > 1 else 1def cow22(n, cache=None):"""递归增加cache减少递归次数"""if cache is None:cache = {1: 1, 0: 1, -1: 1}if n in cache:return cache[n]cache[n - 1] = cow22(n - 1, cache)cache[n - 3] = cow22(n - 3, cache)return cache[n - 1] + cache[n - 3]class cow3:"""牛类每只牛只需关心这些年自己生了多少牛即可家庭成员数量 = 子女家庭成员数量 + 自己"""def __init__(self, n, mom=None):self.age = n + 2 if mom is None else nself.children = [cow3(i + 1, self)for i in range(max(self.age - 3, 0))]@propertydef family_num(self):return sum(c.family_num for c in self.children) + 1# 验证
for i in range(1, 10):print('Year:', i, 'Num:', cow1(i), cow21(i), cow22(i), cow3(i).family_num)

结果

# Year: 1 Num: 1 1 1 1
# Year: 2 Num: 2 2 2 2
# Year: 3 Num: 3 3 3 3
# Year: 4 Num: 4 4 4 4
# Year: 5 Num: 6 6 6 6
# Year: 6 Num: 9 9 9 9
# Year: 7 Num: 13 13 13 13
# Year: 8 Num: 19 19 19 19
# Year: 9 Num: 28 28 28 28

【Python】母牛问题相关推荐

  1. 母牛python_使用Python解决母牛问题

    我看一个用python写的都没有,那我来分享一下 | 第n年 | 总母牛数 | | :------------ | :------------ | | 1 | 1 | | 2 | 2 | | 3 | ...

  2. 母牛python_母牛的故事-题解(Python代码)

    解题思路: 公式: x[n]=x[n-1]+x[n-3] n               #当前年份 x[n]            #当前年份的小母牛 x[]=[1,2,3,4]   #初始化的数据 ...

  3. 母牛python_《Python》 母牛的故事Hello, world用筛法求之N内的素数

    1:题目: 有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候,共有多少头母牛? def f(n): f1,f2,f3=1,2,3 if ...

  4. PYTHON练习题---设有一头小母牛,从出生第四年起每年生一头小母牛

    母牛生小牛 描述 设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛? 输入 输入一个整数N 输出 第N年时母牛的数量 输入样例 1 5 输出样例 1 3 解决思路:递推法 ...

  5. 母牛生小牛问题递归python实现

    #File Name : 母牛问题.py # 开始有一只母牛 母牛每年可以生一只母牛 # 新出生三年后才能每年生一只母牛 假设都不会死 # 第n年有几只def cowNum(N):if N<=1 ...

  6. Python 单词翻译:中英文翻译模块

    简 介: 测试了 中英文翻译模块中的中英文翻译模块的功能.这个模块每天只提供有限的英文单词翻译功能. 关键词: 中英文翻译# #mermaid-svg-VLV67DrDfCYjIugK {font-f ...

  7. 题目 1004: [递归]母牛的故事

    题目 1004: [递归]母牛的故事 idea 1 2 3 4 6 9 13 第4年母牛的数量=第1年母牛的数量+第3年母牛的数量 第5年母牛的数量=第2年母牛的数量+第4年母牛的数量 第6年母牛的数 ...

  8. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  9. 有趣的Python Challenge编程解谜游戏攻略二(5-9关)

    **有趣的Python Challenge编程解谜游戏攻略二(5-9关)** 介绍 游戏介绍 0-4关攻略 写在前面 关卡 第5关 第6关 第7关 第8关 第9关 链接总结 第10关预告 介绍 游戏介 ...

最新文章

  1. C# static的用法详解
  2. oracle 操作表
  3. 2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多
  4. 华为ipd产品开发流程_华为集成产品开发(IPD)流程的解读
  5. hpcc_使用Java将数据流式传输到HPCC
  6. springside 参考地址
  7. 容器编排技术 -- kubectl Cheat Sheet
  8. do sb suggest to_suggest sb to do还是doing
  9. [译] Commit 提交指南
  10. Lost Cows POJ 2182 思维+巧法
  11. 网页设计与制作项目教程HTML+CSS+JavaScript之项目三 flower shop
  12. python列表遍历元组_Python 元组遍历排序操作方法
  13. 关于写作,别那么在意别人的看法,开始干吧
  14. 端智能助力西瓜视频业务实践
  15. 守护进程 - Supervisor的使用
  16. java怎么无参构造方法_Java中如何在无参构造方法中调用有参构造?
  17. 情侣积分微信小程序零基础开发教程(附代码及开发指南)
  18. 郑州大学“战疫杯”大学生程序设计在线邀请赛(2)(C++题解+详细思路)2022年5月10日
  19. 最新支持的各个版本Visual C ++ 2017 2015 2013 2010 2008等版本下载
  20. 恰如春花秋月人生起伏

热门文章

  1. android音频编辑(裁剪,合成)(1)
  2. WS_DAN论文要点理解
  3. 用谷歌浏览器将英文文档翻译成中文的方法(无字数限制)
  4. 软考-嵌入式系统设计师:[嵌入式系统基础:笔记(一)]
  5. 腾讯云发布多款大数据应用产品,助力企业全面释放数据价值
  6. 昨日赢在 中国辩论赛
  7. MT5学习笔记:语法篇
  8. 揭秘奢侈品代工厂内幕:千元以上的大牌墨镜,成本甚至不过百!
  9. 使用Java实现简单记事本(打开,保存,另存为,改字体,改字体大小)
  10. 高速公路网络视频监控方案