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

A23178. 寻找缺失数在一个学校的年度校园活动中,组织者需要为参与者分配不同的编号,以便进行抽奖和其他活动。他们决定使用长度为n-1的列表a来存储参与者的编号,这些编号是从1到n的整数,且没有重复。现在,他们需要找出在区间[1,n]范围内没有出现在列表a中的那个整数,以便为这个编号进行特别的奖励。如当n=5时,a[0]=5,a[1]=4,a[2]=1,a[3]=3时,列表a中缺失的数为2。程序输出结果如下所…

填空题 困难

题目描述

寻找缺失数

在一个学校的年度校园活动中,组织者需要为参与者分配不同的编号,以便进行抽奖和其他活动。他们决定使用长度为n-1的列表a来存储参与者的编号,这些编号是从1到n的整数,且没有重复。

现在,他们需要找出在区间[1,n]范围内没有出现在列表a中的那个整数,以便为这个编号进行特别的奖励。如当n=5时,a[0]=5,a[1]=4,a[2]=1,a[3]=3时,列表a中缺失的数为2。程序输出结果如下所示:

----------程序运行结果----------

请输入一个整数n:5

[5, 4, 1, 3]

列表中缺失的数为: 2

Python代码如下,请在划线处填上合适的代码.

from random import randint
n=int(input("请输入一个整数n:"))
a=[]
c=1
while c<n:
     x=randint(1,n)
     if  ________   ① ________   :
         a.append(x) 
         _________②  ________            
s=n*(n+1)//2    #s得到1~n的累加和
for i in range(n-1):   
       ________ ③  _________         
print(a)
print('列表中缺失的数为:',s)

参考答案

from random import randint n = int(input("请输入一个整数n:")) a = [] c = 1 while c < n: x = randint(1, n) if x not in a: a.append(x) c+=1 s=n*(n+1)//2 #s得到1~n的累加和 for i in range(n-1): s= s-a[i] print(a) print('列表中缺失的数为:',s)

答案解析

评分标准:

(1)x not in a 或等效答案;(3分)

(2)c+=1 或等效答案;(3分)

(3)s=s-a[i] 或等效答案。(4分)

上一题 下一题