五人分鱼--基于python3.0
2021/9/13 17:06:33
本文主要是介绍五人分鱼--基于python3.0,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
A、B、C、D、E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。
日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。
B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉拿走自己的一份。 。
C、D、E依次醒来,也按同样的方法拿鱼。
问他们至少捕了多少条鱼?
问题分析:
每个人按照以下规则分鱼并拿走自己的那一份:
A:(x-1)/5
B:(x-((x-1)/5)-1)/5
C:(x-((x-1)/5)-((x-((x-1)/5)-1)/5)-1)/5
D:(x-((x-1)/5)-((x-((x-1)/5)-1)/5)-((x-((x-1)/5)-((x-((x-1)/5)-1)/5)-1)/5)-1)
E:(x-((x-1)/5)-((x-((x-1)/5)-1)/5)-((x-((x-1)/5)-((x-((x-1)/5)-1)/5)-1)/5)-((x-((x-1)/5)-((x-((x-1)/5)-1)/5)-((x-((x-1)/5)-((x-((x-1)/5)-1)/5)-1)/5)-1))-1)
问题转化为从1开始寻找一个可以满足上述规则的最小整数
def main(): #默认鱼的数量至少是一条 fish = 1 while True: total,enough = fish,True #五个人都按照这样的规则来分鱼 for _ in range(5): #如果扔掉一条鱼后恰好可以分为五份 if (total-1)%5 == 0: #扔掉一条鱼,然后分为五份,拿走自己的那一份 total = (total-1)//5*4 #运算过后的total的值是此次进行分配的人拿走自己的那一份之后剩下的 #如果这个人按照这种方法不够分,说明不满足规则 else: enough = False break #如果够分,输出鱼的总数 if enough: print("鱼的总数是",fish) break #每一次循环,鱼的数量都增加1来寻找满足规则的最小值 else: fish+=1 main()
这篇关于五人分鱼--基于python3.0的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享