相反数
一:题目描述
有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。
二:理解
这个题是第一题比较简单,就直接暴力就可以;一个一个比较;
为什么要有一个temp[510]数组呢?答:标记每个数是否配对,已经有配对直接遍历下一个数。
注:当时写的时候遇到一个问题,就是我把temp[510]开始初始化全部为‘1’时,是不可以的。 如: int temp[510] = {1}; 是无法赋值的,只能对其赋‘0’值。如: int temp[510] = {0};这样是可以的。
当时学C语言的时候一直以为它具有普遍性,谁知只能赋‘0’值。(实践是检验真理的唯一标准,嘻嘻!)。
三:代码
#include<bits/stdc++.h>
using namespace std;
int N,num[510];
int main()
{
int count = 0;
int temp[510] = {0};
cin >> N;
for(int i = 0; i < N; i++)
cin >> num[i];
//暴力
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
{
if(num[i] == (-num[j]) && !temp[i] && !temp[j])
{
count++;
temp[i] = 1;
temp[j] = 1;
break;
}
}
cout << count << endl;
return 0;
}