问题描述
试题编号: | 201403-1 |
试题名称: | 相反数 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。 输入格式 第一行包含一个正整数 N。(1 ≤ N ≤ 500)。 输出格式 只输出一个整数,即这 N 个数中包含多少对相反数。 样例输入 5 样例输出 2 |
思路:刚开始看到题的时候,想到了先用一个数组把这些数据存储起来,然后一个一个去配对,后面看到了一个整数只出现一次,就直接for循环if判断加起来是不是为0,双重循环,每一个数会匹配一次,所以一对相反数会计算两次,需要÷2;
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int k=0;
int a[500];
int count=0;
while(n--){
cin>>a[k];
k++;
}
for(int i=0;i<k;i++ ){
for(int j=0;j<k;j++){
if(a[i]+a[j]==0)count++;
}
}
cout<<count/2<<endl;
}