刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

编程实现:

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

使用微信搜索喵呜刷题,轻松应对考试!

答案:

根据题目描述,我们需要找出第一次报错的小朋友编号。报错的情况是报数中含有3或者数字是3的倍数时,小朋友应该报“过”,但是报成了其他数字。首先,我们需要遍历输入的报数序列,找出报错的位置。由于报错的位置是在报数中含有3或者数字是3的倍数的位置,因此我们需要特别注意这些位置。在遍历的过程中,我们同时记录下当前小朋友的编号,当报错发生时,就输出该编号作为答案。具体的实现方法如下:1. 从报数序列的第二个元素开始遍历(因为第一个元素是1,不含有3或3的倍数)。2. 对于每个元素,判断是否为0(表示报错),如果是,则输出当前位置的编号,并结束程序。3. 如果不是0,则继续遍历下一个元素。

解析:

【喵呜刷题小喵解析】:
根据题目描述,我们需要找出第一次报错的小朋友编号。报错的情况是报数中含有3或者数字是3的倍数时,小朋友应该报“过”,但是报成了其他数字。

这个问题可以通过遍历输入的报数序列来解决。在遍历的过程中,我们需要注意报数序列中每个元素的值,当遇到值为0的元素时,表示该位置的小朋友报错,此时我们可以输出该位置的编号作为答案。

由于报错的位置是在报数中含有3或者数字是3的倍数的位置,因此我们需要特别注意这些位置。在遍历的过程中,我们同时记录下当前小朋友的编号,当报错发生时,就输出该编号作为答案。

具体的实现方法如答案所示,需要注意的是,由于第一个元素是1,不含有3或3的倍数,因此我们从报数序列的第二个元素开始遍历。

因此,我们可以编写如下的程序来实现这个问题:


```python
N = int(input().strip())
report_sequence = input().strip().split(',')

for i in range(1, len(report_sequence)):
if report_sequence[i] == '0':
print(i + 1)
break
else:
print(-1)
```
程序首先读取输入的小朋友人数N和报数序列。然后从第二个元素开始遍历报数序列,如果当前元素为0,则表示该位置的小朋友报错,输出该位置的编号,并结束程序。如果遍历完整个报数序列都没有找到报错的位置,则输出-1表示没有报错的小朋友。
创作类型:
原创

本文链接:编程实现: N个小朋友围成一圈(N≤60),并按照顺序进行编号(编号1到N),然后从编号为1的小朋友

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share