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