做网站是用c 吗,个人网站做哪一种比较赚钱,如何查询网站的备案号,免费的oa办公系统排名[题目描述] 假设有 N 盏灯#xff08;N 为不大于 5000 的正整数#xff09;#xff0c;从 1 到到 N 按顺序依次编号#xff0c;初始时全部处于开启状态#xff1b;第一个人#xff08; 1 号#xff09;将灯全部关闭#xff0c;第二个人#xff08; 2 号#xff09;将…[题目描述] 假设有 N 盏灯N 为不大于 5000 的正整数从 1 到到 N 按顺序依次编号初始时全部处于开启状态第一个人 1 号将灯全部关闭第二个人 2 号将编号为 2 的倍数的灯打开第三个人 3 号将编号为 3 的倍数的灯做相反处理即将打开的灯关闭将关闭的灯打开。依照编号递增顺序以后的人都和 3 号一样将凡是自己编号倍数的灯做相反处理。问当第 N 个人操作完之后有哪些灯是关闭着的输入 输入共一行一个整数 N 为灯的数量。输出 输出共一行按顺序输出关着的灯的编号。编号与编号之间间隔一个空格。样例输入1 10
样例输出1 1 4 9
样例输入2 5
样例输出2 1 4
提示 对于 100% 的数据保证 1 N 5000 。来源/分类难度系数一星
完整代码展示 aint(input()) b[] for i in range(1,a1): b.append(i) for j in range(0,len(b)): b[j]0 c2 while ca1: for k in range(0,len(b)): if (k1)%c0: if b[k]0: b[k]1 else: b[k]0 c1 sum for l in range(0,len(b)): if b[l]0: sum{} .format(l1) print(sum)
代码解释 “aint(input()) b[] ”让用户输入灯的数量并建立一个空列表b。 “for i in range(1,a1): b.append(i) for j in range(0,len(b)): b[j]0 ”将从1至a的数字依次添加进列表b中。再将列表b中的所有元素替换为0代表对所有灯的第一步操作将所有灯关闭。 “c2 while ca1: for k in range(0,len(b)): if (k1)%c0: if b[k]0: b[k]1 else: b[k]0 c1 ”设置循环密码子为c,并将其初始值设为2因为前面已经进行过了第一步操作将所有灯关闭。每循环一次就将遍历一次列表b中所有元素查看b中所能被c整除的编号的灯的状态如果为关闭状态0那么就将其改为打开状态1;反之亦然。循环一次,循环密码子c就加1直至ca1跳出整个while循环。 “sum for I in range(0,len(b)): if b[l]0: sum{} .format(l1) print(sum) ”遍历列表b中所有元素如果该元素为0,则将其所对应的编号连接起来每两个编号之间插入一个空格直至循环结束。打印最终结果。本题解题核心1将灯关闭状态设为0打开状态设为12灯的编号与灯的状态之间的转换。 运行效果展示 操作过程展示 声明以上内容均为原创