Descripción del problema
Hay N enteros distintos de cero y diferentes. Escriba un programa para averiguar cuántos pares de opuestos (aya son opuestos).
Formato de entrada La
primera línea contiene un entero positivo N. (1 ≤ N ≤ 500).
La segunda línea es N enteros distintos de cero separados por un solo espacio, el valor absoluto de cada número no excede 1000, para asegurar que estos enteros sean diferentes.
El formato de salida genera
solo un número entero, es decir, cuántos pares de números opuestos se incluyen en estos N números.
Entrada de muestra
5
1 2 3 -1 -2
Salida de muestra
2
Resumen
de la experiencia Dado que el valor absoluto de cada número no excede 1000, entonces se puede crear una matriz de longitud 1001 para almacenar datos.
Como cada número es diferente y distinto de cero, si la suma de los dos números es 0, debe ser un par de números opuestos.
De esta manera, el valor absoluto de cada número se puede usar como un subíndice, y el valor es el valor original más este número. Si el resultado es 0 después de la suma, entonces es un par de números opuestos.
Código C ++:
#include<bits/stdc++.h>
using namespace std;
int num[1001];
int main() {
int n,cnt = 0;
scanf("%d",&n);
for(int i=0;i<n;i++){
int a;
scanf("%d",&a);
num[abs(a)] += a;
if(0 == num[abs(a)]){
cnt++;
}
}
printf("%d",cnt);
return 0;
}