NOIP2014普及组 珠心算测验

Description

珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。 
某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和? 
最近老师出了一些测验题,请你帮忙求出答案。

Input

输入共两行,第一行包含一个整数n,表示测试题中给出的正整数个数。 
第二行有n个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。

Output

输出共一行,包含一个整数,表示测验题答案。

Sample Input

4
1 2 3 4

Sample Output

2

Hint

对于100%的数据,3 ≤ n ≤ 100,测验题给出的正整数大小不超过10,000。

Source

NOIP2014普及组

题目中说到,有多少个数,恰好等于集合中另外两个(不同的)数之和,那么只需要被加的两个数不相同即可(也就意味着,集合中如果有0的话,这个数可以成为被加的数)即只要j!=k即可,不用i!=j&&j!=k&&k!=i。进行穷举后如果a[i]==a[j]+a[k],那么就让i进行下一位循环,j,k归零。即i++;j=0;k=0;如果不这样达不到要求)


#include<stdio.h>
int main()
{
	int n;
	int i,j,k,a[100],count=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			for(k=0;k<n;k++)
				if(j!=k && (a[i]==a[j]+a[k]))
				{
						count++;
						i++;
						j=0;k=0;
				}
	printf("%d",count);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/zmc1248234377/article/details/79631346