题目描述
报数
(1)问题描述及输入输出格式要求
题目描述:如下图1.3.1-1
图1.3.1-1
输入格式要求:从标准输入读入数据。输入仅一行,包含一个整数 n 表示爆出来多少个数后游戏结束。
输出格式要求:输出到标准输出。输出共四行,每一行一个整数,依次表示甲乙丙丁四人在游戏过程中跳过的次数。
(2)解题思路分析
1.定义一个列表对甲乙丙丁四人的跳过数进行记录。
2.使用一个死循环对报数进行循环在满足报数达到要求后使用break对循环进行跳出。
3.使用for循环遍历储存列表中记录的甲乙丙丁跳过的数
(3)提交的编程代码
# 用于储存各个人跳过的数的记录
num_list: int=[0,0,0,0]
# 输入要报的数的总数
num=int(input())
# 分别用1、2、3、0代表甲、乙、丙、丁
i=1
while True :
n=i%4
# 甲
if n==1 and (i%7==0 or '7' in list(str(i))) :
num_list[0]+=1
# 乙
if n==2 and (i%7==0 or '7' in list(str(i))) :
num_list[1]+=1
# 丙
if n==3 and (i%7==0 or '7' in list(str(i))) :
num_list[2]+=1
# 丁
if n==0 and (i%7==0 or '7' in list(str(i))) :
num_list[3]+=1
# 跳出条件的判断 当报数足够时跳出
if i-sum(num_list)==num :
break
i+=1
# 遍历 num_list列表读出各个人的跳过数
for way in num_list :
print(way)