python 【问题描述】给定n个的整数,问这些数中有多少对整数,它们的值正好相差1。【输入形式】 输入的第一行包含一个整数n,表示给定整数的个数。第二行包含所给定的n个整数。【输出形式】输出一个整数,表示值正好相差1的数对的个数。输出符合要求的整数对,小数在前,大数在后,如有多组输出顺序按照第一个数字递增排序,重复数字对视为一组。
时间: 2023-06-24 19:02:56 浏览: 111
代码如下:
```python
n = int(input())
num_list = list(map(int, input().split()))
# 先将列表排序
num_list.sort()
count = 0
for i in range(n-1):
if num_list[i+1] - num_list[i] == 1:
print(num_list[i], num_list[i+1])
count += 1
print(count)
```
解释一下:
1. 首先读入整数 n 和 n 个整数,将整数存入列表 num_list 中
2. 对 num_list 排序,这样我们才能方便地找出相差 1 的数对
3. 遍历 num_list,判断相邻两个数是否相差 1,如果是,输出这两个数,计数器 count 加 1
4. 最后输出 count,表示相差 1 的数对的个数
注意,题目中要求输出符合要求的整数对,小数在前,大数在后,如果有多组输出,按照第一个数字递增排序,这一点需要注意。
相关问题
python给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1
这个问题可以使用Python中的set和count函数来解决。首先将给定的n个整数放入一个set中,然后遍历set中的每个元素,检查set中是否存在该元素加1或减1的元素,如果存在,则将计数器加1。最后返回计数器的值即可。
以下是Python代码实现:
```
def count_pairs(nums):
num_set = set(nums)
count = 0
for num in num_set:
if num + 1 in num_set:
count += 1
if num - 1 in num_set:
count += 1
return count // 2
# 示例
nums = [1, 2, 3, 5, 6, 8, 9]
print(count_pairs(nums)) # 输出3
```
这个算法的时间复杂度是O(n),其中n是给定的整数个数。
给定n个整数,问这些数中有多少对整数,它们的值正好相差1
这个问题属于计算机编程问题,可以通过编写程序来解决。下面是一个简单的 Python 代码示例:
```python
n = int(input())
nums = list(map(int, input().split()))
count = 0
for i in range(n):
for j in range(i+1, n):
if abs(nums[i]-nums[j]) == 1:
count += 1
print(count)
```
其中,首先输入整数n表示数的个数,然后输入n个整数。通过双重循环遍历每两个不同的数,如果它们的差的绝对值为1,则计数器加1,最后输出结果。
阅读全文