A、B、C、D、E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉拿走自己的一份。
C、D、E依次醒来,也按同样的方法拿鱼。
问他们至少捕了多少条鱼?
"""五人分鱼"""
"""A、B、C、D、E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。
日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。
B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉拿走自己的一份。 。
C、D、E依次醒来,也按同样的方法拿鱼。
问他们至少捕了多少条鱼?"""
def main( ):
fish = 1
#初始化fish,从1开始计数
while True:
total, enough = fish, True
for _ in range(5):
#存在一个数,循环5次能够整除
if (total - 1) % 5 == 0:
#第一个人拿鱼时,总数中扔掉一条,向下取整五个人均分,他拿走了自己的,
#剩余总数剩余4人的份;第二个人也是同样的方法,一次类推,
#五个人都这样操作,所以共分了五次鱼
total = (total - 1) // 5 * 4
#若存在一个人不够分鱼,则跳出循环,fish自增1,继续循环
else:
enough = False
break
if enough:
#执行5次循环之后,enough = True,打印至少鱼的总数,跳出while循环
print('至少捕获鱼的数量{0}'.format(fish))
break
#fish自增1
fish +=1
if __name__ == '__main__':
main( )
#可以简单的理解为找一个数字,能够完成total = (total - 1) // 5 * 4,for循环的五次计算,即可计算出鱼的最少数量.
知识点:1、运算符;2、循环、判断
def leftRotate(arr, d, n):
for i in range(d):
leftRotatebyOne(arr, n)
def leftRotatebyOne(arr, n):
temp = arr[0]
for i in range(n - 1):
arr[i] = arr[i + 1]
arr[n - 1] = temp
def printArray(arr, size):
for i in range(size):
print("%d" % arr[i], end=" ")
arr = [1, 2, 3, 4, 5, 6, 7,8]
leftRotate(arr, 3, 8)
printArray(arr, 8)