问题描述:
# 遇见 7的倍数或者其中包含7的数就跳过,否则就要报数。 # 当四个人甲、乙、丙、丁四个人报数的次数达到n, 则游戏结束, # 最后输出四个人分别跳过了多少次。
思路:看到这个问题脑子里首先出现的就是一群小孩围在一起报数的情景,想到这样的游戏若一直进行不就是个while的死循环么,而每轮报数又是一个小循环,只要在报数的时候判断是否满足条件即可。注意:因为符合条件的数字不计数,需要给循环次数+1。
代码实现:
def play(n) -> list:
num = 0
list = [0, 0, 0, 0]
while True:
for i in range(4):
num += 1
if num % 7 == 0 or [i for i in str(num)].count('7')>0:
list[i] += 1
n+=1
if num == n:
return list
end = play(66)
for i in end:
print(i, end=' ')