题库首页 › 青少年软件编程(Python) › 题目 2263

n个灯排成一排,开始时都是关着的。现进行如下操作: 所有电灯的按钮按动一次;所有编号为2的倍数的电灯按钮按动一次;所有编号为3的倍数的电灯的按钮按动一次; …… 所有编号为n-1的倍数的电灯的按钮按动一次;所有编号为n的倍数的电灯的按钮按动一次。 最后请统计有多少只电灯是亮的。编写程序实现上述功能,或补全代码。 n=int(input()) a=[] for i in range( ① ): a.append(-1) for i in range(1,n+1): for j in range(1,n+1): if( ② ) == 0: a[j] = ③ * -1 s=0 for i in range(1,n+1): if (a[i] == ④ ): s=s+1 print( ⑤ )

正确答案:补全答案:①range(n+1) ②j%i ③a[j] ④1 ⑤s。核心:模拟灯开关,编号i的倍数翻转状态(a[j]*=-1),亮的=操作奇数次,最终亮灯数为完全平方数个数,统计a[i]==1。

试卷来源:202112 青少年软件编程等级考试Python三级真题

本卷相关题目

在线做题 同科目题库