题目
问题描述
有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。
输入格式第一行包含一个正整数 N。(1 ≤ N ≤ 500)。
第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。
只输出一个整数,即这 N 个数中包含多少对相反数。
样例输入5
1 2 3 -1 -2
2
代码如下(示例):
#includeusing namespace std; int main() { int n; cin >> n; int p[500]; for (int i = 0; i < n; i++) { cin >> p[i]; } int num = 0; for (int i = 0; i < n-1; i++) { for (int j = i + 1; j < n; j++) { if (p[i] == -(p[j])) { num++; break; } } } cout << num; return 0; }
解题思路
使用循环在数组内部进行遍历,遇到符合条件后,下一步就可以跳出当前循环进入下一个循环,即代码中的break语句,break跳出内部的for循环后执行外面的for循环。
测试结果


