试题编号:201403_1
试题名称:相反数
时间限制:1.0s
内存限制:256.0MB
问题描述
有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。
输入格式
第一行包含一个正整数 N。(1 ≤ N ≤ 500)。
第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。
输出格式
只输出一个整数,即这 N 个数中包含多少对相反数。
样例输入
5
1 2 3 -1 -2
样例输出
2
JAVA程序
import java.util.Scanner;
public class csp201403_1 {
private static int max = 500;
public static void main(String[] args) {
int N,count = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入整数的个数:");
N = scanner.nextInt();
int a[] = new int[N];
System.out.println("请输入数据");
for (int i = 0; i < N; i++) {
a[i] = scanner.nextInt();
for (int j = i-1; j >= 0; j--) {
if (a[i] == (-a[j])) {
count++;
break;
}
}
}
System.out.println("count="+count);
}
}
C程序
#include <stdio.h>
void main()
{
int N,count = 0;
printf("请输入整数的个数:\n");
scanf("%d",&N);
int a[N];
printf("请输入数据\n");
for(int i = 0; i < N; i++)
{
scanf("%d",&a[i]);
for (int j = i-1; j >= 0; j--)
{
if ((a[i] + a[j])==0)
{
count++;
break;
}
}
}
System.out.println("count="+count);
}
注意:在判断有多少个相反数的时候,一边输入一边判断,判断可以使用两个数相加等于0或者互为相反数,一旦找到存在相反数应该立即结束当前的判断。