3721:和数-poj
2024-09-19 09:50:28
- 总时间限制:
- 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 ;
}
最新文章
- Python之路第一课Day7--随堂笔记(面向对象编程进阶...未完待续 )
- [转]什么鬼,又不知道怎么命名class了
- 一个十年java程序员的心得
- 15款精美的 WordPress 电子商务网站模板
- 并行计算之Memory barrier(内存
- (收藏)C#实现截屏
- 基于Linux2.6内核的加密容器法保护文件方法
- [React] React Fundamentals: First Component
- [Javascript + rxjs] Simple drag and drop with Observables
- 《第一行代码》学习笔记2-Android开发特色
- HDU 3277 Marriage Match III(二分+最大流)
- APP案例分析
- apache修改最大连接数报错
- mybatis 保存对象 参数类型
- Linux 下面 PG 的 uuid-ossp 包安装办法
- Git的搭建
- padding和margin设置成百分比
- poj2464扫描线好题,回头再做
- vs2013安装过程及使用心得
- postgresql相关命令
热门文章
- java中 n-- 和 --n的区别
- java遍历hashMap、hashSet、Hashtable
- Python 使用正则表达式
- Repeated Substring Pattern --重复字符串
- LeetCode 31. Next Permutation (下一个排列)
- VUE 源码学习01 源码入口
- Cloud9 on Docker镜像发送
- PyQt5安装目录中找不到designer.exe与pyrcc5.exe
- windows中通过bat批处理打开exe文件
- HDU1019 Least Common Multiple(多个数的最小公倍数)