CCF-CSP 201403-1逆数

問題の説明
  ゼロ以外のN個の異なる整数があります。反対のペア(aと-aは反対)のペアを見つけるプログラムを作成してください。
入力形式
  最初の行には正の整数Nが含まれています。(1≤N≤500)。
  2行目は、1つのスペースで区切られたN個のゼロ以外の整数であり、これらの整数が確実に異なるように、各数値の絶対値は1000を超えません。
出力形式
  は、整数を1つだけ出力します。つまり、これらのN個の数値に含まれる反対の数値のペアの数。
サンプル入力
5
1 2 3 -1 -2
サンプル出力
2

経験の要約
各数値の絶対値は1000を超えないため、データを格納するために長さ1001の配列を作成できます。
各数値は異なり、ゼロではないため、2つの数値の合計が0の場合、それは反対の数値のペアでなければなりません。
このように、各数値の絶対値を添え字として使用でき、値は元の値にこの数値を加えたものになります。加算後の結果が0の場合は、反対の数値のペアになります。

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;
}
公開された111元の記事 ウォンの賞賛2 ビュー3533

おすすめ

転載: blog.csdn.net/m0_38088647/article/details/100516080