问题描述 有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。 输入格式 第一行包含一个正整数 N。(1 ≤ N ≤ 500)。 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。 输出格式 只输出一个整数,即这 N 个数中包含多少对相反数。 样例输入 5 1 2 3 -1 -2 样例输出 2给出代码
时间: 2024-04-12 07:27:26 浏览: 45
```python
# 读取输入
N = int(input())
nums = list(map(int, input().split()))
# 统计相反数对的数量
count = 0
for num in nums:
if -num in nums:
count += 1
# 输出结果
print(count)
```
注意:这段代码是用 Python 编写的,可以直接运行。
相关问题
【问题描述】 有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。 【输入形式】 第一行包含一个正整数 N。(1 ≤ N ≤ 500)。 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。 【输出形式】 只输出一个整数,即这 N 个数中包含多少对相反数。 【样例输入】 5 1 2 3 -1 -2 【样例输出】 2 C++实现
以下是基于题意的 C++ 实现:
```c++
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
int n;
cin >> n;
unordered_set<int> s; // 用哈希表存储
for (int i = 0; i < n; i++) {
int x;
cin >> x;
s.insert(x);
}
int ans = 0;
for (auto x : s) {
if (s.count(-x)) {
ans++;
}
}
cout << ans << endl;
return 0;
}
```
将输入的 n 个数放入一个哈希表中,遍历哈希表中的每一个数,如果它的相反数也在哈希表中,那么就说明找到了一对相反数,将答案加 1。最后输出答案即可。
#题目描述 输入n个数,要求程序按输入时的逆序把这n个数打印出来,已知整数不超过100个。也就是说,按输入相反顺序打印这n个数
可以使用一个数组来存储输入的n个数,然后从数组的最后一个元素开始遍历,依次打印出每个数即可。
具体实现如下:
```python
# 输入n个数,存储到数组中
n = int(input())
arr = []
for i in range(n):
num = int(input())
arr.append(num)
# 从数组的最后一个元素开始遍历,依次打印出每个数
for i in range(n-1, -1, -1):
print(arr[i])
```
在这个程序中,我们使用了一个for循环来读取用户输入的n个数,并将它们存储到一个数组中。然后,我们再用另一个for循环从最后一个元素开始遍历数组,依次打印出每个数。需要注意的是,第二个for循环中的range函数中,第一个参数是起始位置,第二个参数是结束位置,第三个参数是步长,由于我们是从最后一个元素开始遍历,所以起始位置是n-1,结束位置是-1,步长是-1。
阅读全文