A27384. 同学们正在练习列队,从第一个人开始按编号1、2、…、n(n<1000)报数,开始所有人都是面向前方,第一遍报数是2的倍数的同学执行一遍向后转命令,第二遍报数是3的倍数的同学执行一遍向后转命令,第三遍报数是5的倍数的同学执行一遍向后转命令,输入人数n,按顺序输出最终仍然面向前方的同学的编号。注意:input()内不添加任何参数只有完全正确才可提交,若无法点击提交说明答题存在错误,可及时进行检查并修…
填空题
较易
知识点
题目描述
同学们正在练习列队,从第一个人开始按编号1、2、…、n(n<1000)报数,开始所有人都是面向前方,第一遍报数是2的倍数的同学执行一遍向后转命令,第二遍报数是3的倍数的同学执行一遍向后转命令,第三遍报数是5的倍数的同学执行一遍向后转命令,输入人数n,按顺序输出最终仍然面向前方的同学的编号。
注意:
input()内不添加任何参数
只有完全正确才可提交,若无法点击提交说明答题存在错误,可及时进行检查并修改
输入样例:
10输出样例:
1
6
7
10参考答案
# 获取输入,并转成整数
n = int(input())
# 初始化列表,默认都是-1,表示向前
direction = [-1] * n
# 第1遍报数,注意报数是从1开始的
for i in range(n):
if (i + 1) % 2 == 0:
direction[i] = 1
# 第2遍报数
for i in range(n):
if (i + 1) % 3 == 0:
direction[i] *= -1
# 第3遍报数
for i in range(n):
if (i + 1) % 5 == 0:
direction[i] *= -1
# 输出值为-1是列表项
for i in range(n):
if direction[i] == -1:
print(i + 1)
上一题
下一题