python 【问题描述】给定n个的整数,问这些数中有多少对整数,它们的值正好相差1。【输入形式】 输入的第一行包含一个整数n,表示给定整数的个数。第二行包含所给定的n个整数。【输出形式】输出一个整数,表示值正好相差1的数对的个数。输出符合要求的整数对,小数在前,大数在后,如有多组输出顺序按照第一个数字递增排序,重复数字对视为一组。
时间: 2023-06-20 19:06:44 浏览: 837
以下是 Python 代码实现:
```python
n = int(input())
nums = list(map(int, input().split()))
nums.sort() # 对输入的整数列表进行排序
count = 0 # 记录相差1的整数对的个数
for i in range(n):
if i == 0: # 第一个数只能和后面相邻的数比较
if nums[i+1] - nums[i] == 1:
count += 1
print(nums[i], nums[i+1])
elif i == n-1: # 最后一个数只能和前面相邻的数比较
if nums[i] - nums[i-1] == 1:
count += 1
print(nums[i-1], nums[i])
else: # 中间的数既可以和前面相邻的数比较,也可以和后面相邻的数比较
if nums[i] - nums[i-1] == 1:
count += 1
print(nums[i-1], nums[i])
if nums[i+1] - nums[i] == 1:
count += 1
print(nums[i], nums[i+1])
print(count)
```
以上代码中,我们首先读入整数的个数 n 和 n 个整数,然后对这些整数进行排序。接着,我们遍历整数列表,对每个整数分别和它前面和后面相邻的整数比较,如果相差1,则计数器 count 加1,并输出这一对整数。最后,输出相差1的整数对的个数。
阅读全文