一行中输入n个整数,输出最接近平均值的值,若有多个元素输出排序靠前的Python
时间: 2023-06-15 22:08:11 浏览: 97
可以先将输入的n个整数存储在一个列表中,然后计算它们的平均值。接着遍历列表,找到与平均值最接近的元素。如果有多个元素与平均值的差距相同,就输出排序靠前的那个元素。
以下是代码实现:
```python
n = int(input())
nums = list(map(int, input().split()))
avg = sum(nums) / n
closest = nums[0]
dist = abs(nums[0] - avg)
for i in range(1, n):
new_dist = abs(nums[i] - avg)
if new_dist < dist:
closest = nums[i]
dist = new_dist
elif new_dist == dist:
closest = min(nums[i], closest)
print(closest)
```
输入示例:
```
5
1 2 3 4 5
```
输出示例:
```
3
```
解释:平均值为3,与3最接近的元素是3本身。
相关问题
一行中输入n个整数,输出最接近平均值的值,若有多个元素输出排序靠前的原始值Python
可以先计算平均值,然后遍历整个列表,记录与平均值差值最小的元素及其下标,最后输出该元素的值即可。
以下是示例代码:
```python
n = int(input()) # 输入整数个数
nums = list(map(int, input().split())) # 输入整数列表
mean = sum(nums) / n # 计算平均值
min_diff = float('inf') # 初始化差值最小值为正无穷大
result = nums[0] # 初始化最接近平均值的元素为第一个元素
for i in range(n):
diff = abs(nums[i] - mean) # 计算当前元素与平均值的差值
if diff < min_diff: # 如果差值比最小值还小,则更新最小值和结果
min_diff = diff
result = nums[i]
print(result) # 输出最接近平均值的元素值
```
注意,如果有多个元素与平均值差值相同,那么需要输出排序靠前的元素,因此我们可以在遍历整个列表时,记录第一个差值最小的元素即可。
一行中输入n个整数,输出最接近平均值的值,若有多个元素输出排序靠前的原始值Python,如果有多个元素与平均值差值相同,那么需要输出排序靠前的元素,因此我们可以在遍历整个列表时,记录第一个差值最小的元素
可以使用以下代码实现:
```python
n = int(input())
nums = list(map(int, input().split()))
avg = sum(nums) / n
min_diff = float('inf')
ans = nums[0]
for num in nums:
diff = abs(num - avg)
if diff < min_diff:
min_diff = diff
ans = num
print(ans)
```
首先读入整数n和列表nums。然后计算平均值avg。接着,我们初始化最小差值为正无穷,并将答案ans初始化为列表的第一个元素。然后遍历列表nums中的每个元素,计算它与平均值的差值,并将其与当前最小差值进行比较。如果差值更小,则更新最小差值和答案。最后,输出答案即可。
阅读全文