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

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)
上一题 下一题