刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

36.寻找缺失数
在一个学校的年度校园活动中,组织者需要为参与者分配不同的编号,以便进行抽奖和其他活动。他们决定使用长度为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)

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

这是一个寻找缺失数的问题。根据题目描述,我们需要在一个长度为n-1的列表a中找出从1到n的整数中缺失的那个数。Python代码的主要逻辑是通过随机生成数字并添加到列表a中,然后计算缺失的数字。以下是详细解析:

首先,我们需要创建一个空列表a来存储参与者的编号。然后使用一个循环来随机生成数字并添加到列表a中,直到列表的长度达到n-1。在每次循环中,我们需要判断生成的数字是否已经存在于列表a中,如果不存在则添加到列表中。这里需要使用条件语句来判断数字是否已经存在,即①处应填写“x not in a”。然后更新计数器c的值,即②处应填写“c += 1”。接下来,我们计算从1到n的累加和s,并存储在变量s中。然后遍历列表a中的每个元素,计算缺失的数字。这里可以使用Python的内置函数sum来计算列表a中所有元素的和,然后用累加和s减去这个和得到缺失的数字。③处可以填写多种形式的表达式来计算缺失的数字,例如“missing_num = s - sum(a)”或“missing_num = n*(n+1)//2 - sum(a)”等。最后输出列表a和缺失的数字。注意,Scratch中不支持直接计算表达式,需要使用变量存储中间结果。因此在实际实现时需要根据Scratch的语法进行相应的调整。

创作类型:
原创

本文链接:36.寻找缺失数在一个学校的年度校园活动中,组织者需要为参与者分配不同的编号,以便进行抽奖和其他活动

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share