总时间限制: 
1000ms

内存限制: 
65536kB
描述

给定一个正整数序列,判断其中有多少个数,等于数列中其他两个数的和。 比如,对于数列1 2 3 4, 这个问题的答案就是2, 因为3 = 2 + 1, 4 = 1 + 3。

输入
共两行,第一行是数列中数的个数n ( 1 <= n <= 100),第二行是由n个不大于10000的正整数组成的数列,相邻两个整数之间用单个空格隔开。
输出
一个整数,即数列中等于其他两个数之和的数的个数。
样例输入
4
1 2 3 4
样例输出
2
代码:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>//memset的头文件***之前一直报错,都没注意到
using namespace std; int arry[];
int dig[];
int main()
{
int t;
int n;
cin>>n;
memset(arry,,sizeof(arry));
memset(dig,-,sizeof(dig));
int i,j,k;
for( i=;i<n;i++)
cin>>arry[i]; int sum=;
for( i=;i<n-;i++)
for(int j=i+;j<n;j++)
{
int num=arry[i]+arry[j];//存放任意两个数之间的和的值
// printf("%d=%d+%d\n",num,arry[i],arry[j]);
for(k=;k<n;k++)
{
//因为题目说了输入的是一个正整数序列(不包括0),
//因此不可能出现a[i]+a[j]==(a[i]||a[j])的情况,
//可以跳过,直接不处理
if(k==i||k==j)//其实可以不用跳过这两步,大不了多判断几次,结果为空
{ //printf("第一个循环k=%d i=%d j=%d\n",k,i,j);
continue; }
else
{
if(num==arry[k]&&dig[k]==-)//保证每个数只记录一次和数
{
// printf("第二个循环k=%d \n",k,i,j);
sum++;
dig[k]=;
}
}
}
}
cout<<sum<<endl;
return ;
}
 

最新文章

  1. Python之路第一课Day7--随堂笔记(面向对象编程进阶...未完待续 )
  2. [转]什么鬼,又不知道怎么命名class了
  3. 一个十年java程序员的心得
  4. 15款精美的 WordPress 电子商务网站模板
  5. 并行计算之Memory barrier(内存
  6. (收藏)C#实现截屏
  7. 基于Linux2.6内核的加密容器法保护文件方法
  8. [React] React Fundamentals: First Component
  9. [Javascript + rxjs] Simple drag and drop with Observables
  10. 《第一行代码》学习笔记2-Android开发特色
  11. HDU 3277 Marriage Match III(二分+最大流)
  12. APP案例分析
  13. apache修改最大连接数报错
  14. mybatis 保存对象 参数类型
  15. Linux 下面 PG 的 uuid-ossp 包安装办法
  16. Git的搭建
  17. padding和margin设置成百分比
  18. poj2464扫描线好题,回头再做
  19. vs2013安装过程及使用心得
  20. postgresql相关命令

热门文章

  1. java中 n-- 和 --n的区别
  2. java遍历hashMap、hashSet、Hashtable
  3. Python 使用正则表达式
  4. Repeated Substring Pattern --重复字符串
  5. LeetCode 31. Next Permutation (下一个排列)
  6. VUE 源码学习01 源码入口
  7. Cloud9 on Docker镜像发送
  8. PyQt5安装目录中找不到designer.exe与pyrcc5.exe
  9. windows中通过bat批处理打开exe文件
  10. HDU1019 Least Common Multiple(多个数的最小公倍数)