测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A25758. 编程实现:N个小朋友围成一圈(N≤60),并按照顺序进行编号(编号1到N),然后从编号为1的小朋友开始持续报数,当报到的数字中含3或者数字是3的倍数的小朋友,不能报数字而是报“过”(例如3,6,13,31这些数字都报“过”)。一次游戏中,小朋友们玩的不亦乐乎,突然有小朋友发现前边报过的数字中已经有报错的,而后边小朋友还在继续报数。请你帮助小朋友找出第一次报错的小朋友是编号几。例如:有3个小朋友,…

填空题 较易

题目描述

编程实现:

N个小朋友围成一圈(N≤60),并按照顺序进行编号(编号1到N),然后从编号为1的小朋友开始持续报数,当报到的数字中含3或者数字是3的倍数的小朋友,不能报数字而是报“过”(例如3,6,13,31这些数字都报“过”)。

一次游戏中,小朋友们玩的不亦乐乎,突然有小朋友发现前边报过的数字中已经有报错的,而后边小朋友还在继续报数。请你帮助小朋友找出第一次报错的小朋友是编号几。

例如:有3个小朋友,编号为1,2,3。编号1的小朋友报1、编号2的小朋友报2、编号3的小朋友报“过”、编号1的小朋友报4、编号2的小朋友报5、编号3的小朋友报6、编号1的小朋友报7;此时第一次报错的小朋友为编号3。(因为编号3的小朋友应该报“过”时,报成了“6”,而“6”是3的倍数)

输入描述:

第一行输入一个正整数N,表示小朋友的人数

第二行输入一组有错的报数序列(“0”表示含3或者是3的倍数的数字),序列元素之间以一个英文逗号隔开        

输出描述:

输出第一次报错的小朋友是编号几

样例输入:

3
1,2,0,4,5,6,7

样例输出:

3

参考答案

#参考答案1 n=int(input()) x=input().split(',') i=1 for j in x: if(i%3==0 or str(i).find('3')!=-1): if(j!='0'): print((i-1)%n+1) break else: if(j!=str(i)): print((i-1)%n+1) break i+=1 #参考答案2 N = int(input()) a = eval(input()) a = list(a) c = 0 cc = 0 for aa in a: c += 1 cc += 1 if c > N: c = 1 if (cc%3 == 0 or '3' in str(cc)) and aa!=0: print(c) break

答案解析

评分标准:

10分:能正确输出一组数据;

10分:能正确输出两组数据;

20分:能正确输出三组数据;

20分:能正确输出四组数据。


上一题 下一题