#include<iostream>
using namespace std;
int cnt;
// N 个非零且各不相同的整数
int main(){
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(a[i]+a[j]==0){
cnt++;
//cout<<a[i]<<a[j]<<endl;
}
}
}
/*
for(int i=0;i<n-1;i++){
int j=i+1;
while(a[i]+a[j]!=0){
j++;
}
if(a[i]+a[j]==0){
cnt++;
}
}
*/
cout<<cnt<<endl;
return 0;
}
附加:
哈希表做法(处理输入的时候全部处理成绝对值)
#include<bits/stdc++.h>
using namespace std;
int a[5011]={},n;
int main(){
cin>>n;
int f[10101]={};
for(int i=1;i<=n;i++){
cin>>a[i];
f[abs(a[i])]++;
}
int u=0;
for(int i=1;i<=1000;i++){
if(f[i]==2)u++;
}
cout<<u;
return 0;
}
标签:std,main,int,题解,namespace,include,using,CCF,相反数
From: https://blog.csdn.net/m0_73290253/article/details/142413195