问题描述 有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。 输入格式 第一行包含一个正整数 N。(1 ≤ N ≤ 500)。 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。 输出格式 只输出一个整数,即这 N 个数中包含多少对相反数。 样例输入 5 1 2 3 -1 -2 样例输出 2 |
解析:这道题实质上就是找相同值,对所有的数进行绝对值运算即可,然后计数。
import java.util.Scanner;
public class demo1403_1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in) ;
int n=sc.nextInt();
int arr[]=new int[n];
int count=0;
for(int i=0;i<arr.length;i++) {
arr[i]=sc.nextInt();
}
for(int i=0;i<arr.length-1;i++) {
for(int j=i+1;j<arr.length;j++) {
if(Math.abs(arr[i])==Math.abs(arr[j])) {
count++;
}
}
}
System.out.println(count);
}
}