Python经典五⼈分鱼实例讲解
A、B、C、D、E 五⼈在某天夜⾥合伙去捕鱼,到第⼆天凌晨时都疲惫不堪,于是各⾃地⽅睡觉。
⽇上三杆,A 第⼀个醒来,他将鱼分为五份,把多余的⼀条鱼扔掉,拿⾛⾃⼰的⼀份。
B 第⼆个醒来,也将鱼分为五份,把多余的⼀条鱼扔掉拿⾛⾃⼰的⼀份。。
C、D、E依次醒来,也按同样的⽅法拿鱼。
问他们⾄少捕了多少条鱼?
def main():
fish = 1
while True:
total, enough = fish, True
for _ in range(5):
if (total - 1) % 5 == 0:
total = (total - 1) // 5 * 4
else:
enough = False
break
if enough:
print(f'总共有{fish}条鱼')
break
fish += 1
if __name__ == '__main__':
main()
实例扩展:
#Python3 实例--Python 五⼈分鱼
print("Python3 实例--Python 五⼈分鱼")
django项目实例#原则:
'''⽇上三杆,A 第⼀个醒来,他将鱼分为五份,把多余的⼀条鱼扔掉,拿⾛⾃⼰的⼀份。
B 第⼆个醒来,也将鱼分为五份,把多余的⼀条鱼扔掉拿⾛⾃⼰的⼀份。。
C、D、E依次醒来,也按同样的⽅法拿鱼。
问他们台伙⾄少捕了多少条鱼?(x)
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) '''
def main():
fish = 1
while True:
#默认鱼的数量是够分的,enough = True
total, enough = fish, True
#循环步骤:每⼀个⼈都按照相同的原则分鱼
for _ in range(5):
#"_"符号在循环中不会⽤到,起的是循环次数的作⽤,可以看作和i,j是等效的
#如果正好够5个⼈分,不需要扔掉⼀条
if (total - 1) % 5 == 0:
#除了第⼀个⼈,剩下的鱼的总数为:(total - 1) // 5 * 4,
# 但是此时流程还没有⾛完,还未计算鱼的总数
total = (total - 1) // 5 * 4
#如果不够⼀个⼈分,enough = False,
# 说明鱼的数量不是最少的,还需要每⼀个重复步骤上加⼀条,跳出循环
else:
enough = False
break
#判断鱼是不是够分,⽽且鱼的总数取的是最⼩值
if enough:
#若是,输出鱼的总数,结束程序
print(f'总共有{fish}条鱼')
break
#鱼的数量循环加1
fish += 1
main()
到此这篇关于Python经典五⼈分鱼实例讲解的⽂章就介绍到这了,更多相关Python 五⼈分鱼内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!