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

简答题

(注:input()输入函数的括号中不允许添加任何信息)

编程实现:

有一组连续正整数,随机乱序后生成一组数据后,小蓝不小心删掉了其中一个数,已知所删掉的这个数不是这组数据中最小的也不是最大的,现在请你编写程序帮助小蓝找到删除的那个数。

输入描述:

按照“编程实现”中的描述模仿输入一组这样的正整数数(正整数之间以英文逗号隔开),在输入的时候少一个数(这个数不是这组数据中最小的也不是最大的),这个数作为小蓝删除掉的那个数,且加上小蓝删除的那个数这组数据是连续的

输出描述:

输出删除掉的是哪个数


样例输入:

3,2,4,6,7

样例输出:

5

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

答案:

br />要编写一个程序帮助小蓝找到删除的那个数,可以按照以下步骤进行:1. 首先,使用input()函数从标准输入中读取一串由英文逗号隔开的正整数,假设这组数为a, b, c, ..., z。2. 接下来,将这组数拆分成一个列表,方便后续处理。3. 计算这组数的平均值,用avg表示。4. 然后,从列表的第一个数开始遍历,假设当前数为x,计算从x到列表最后一个数的和sum(x, ..., z),再计算从x+1到列表最后一个数的和sum(x+1, ..., z)。5. 如果sum(x, ..., z) - sum(x+1, ..., z)等于avg,说明x就是删除的那个数,输出x即可。

解析:

【喵呜刷题小喵解析】
这个题目要求找出被删除的那个数,但是并没有直接给出删除的数的位置或特征,所以我们可以通过数学规律来解决。由于删除的数不是最小的也不是最大的,我们可以考虑这组数的平均值。假设这组数是连续的,那么它们的平均值就是中间的那个数。因此,我们可以通过计算从每个数开始到最后一个数的和,然后比较这两个和的差值,如果差值和平均值相等,那么这个数就是被删除的那个数。

具体来说,我们可以从第一个数开始遍历,对于每个数x,计算从x到最后一个数的和sum(x, ..., z)和从x+1到最后一个数的和sum(x+1, ..., z),如果sum(x, ..., z) - sum(x+1, ..., z)等于平均值avg,那么x就是被删除的那个数。

在Python中,我们可以使用列表推导式来计算和,例如sum(range(x, z+1))可以计算从x到z的和。因此,我们可以使用以下代码来实现:


```python
def find_deleted_number(nums):
nums = list(map(int, nums.split(',')))
avg = sum(nums) / (len(nums) - 1) # 排除删除的数
for i in range(len(nums)):
if sum(range(i, len(nums))) - sum(range(i+1, len(nums))) == avg:
return nums[i]
return None # 如果没有找到删除的数,返回None

# 测试
print(find_deleted_number("3,2,4,6,7")) # 输出: 5
```
注意,由于题目要求input()函数的括号中不允许添加任何信息,所以我们使用字符串作为输入,然后将其拆分成一个列表。在代码中,我们使用map()函数将字符串拆分成整数,然后使用列表推导式计算和。最后,我们遍历列表,找到被删除的那个数并返回。如果没有找到被删除的数,则返回None。
创作类型:
原创

本文链接:(注:input()输入函数的括号中不允许添加任何信息) 编程实现: 有一组连续正整数,随机乱序后生

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

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

分享考题
share