您的位置:首页 > 其它

NOIP2014普及组 珠心算测验

2018-03-20 20:39 239 查看
Description珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。 
某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和? 
最近老师出了一些测验题,请你帮忙求出答案。Input输入共两行,第一行包含一个整数n,表示测试题中给出的正整数个数。 
第二行有n个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。Output输出共一行,包含一个整数,表示测验题答案。Sample Input4
1 2 3 4Sample Output2Hint对于100%的数据,3 ≤ n ≤ 100,测验题给出的正整数大小不超过10,000。SourceNOIP2014普及组
题目中说到,有多少个数,恰好等于集合中另外两个(不同的)数之和,那么只需要被加的两个数不相同即可(也就意味着,集合中如果有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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 NOIP