3721:和数
总时间限制: 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
问题链接*:Bailian3721 和数
问题简述:(略)
问题分析:
枚举元素之和,判定一下就好了。
程序说明:(略)
参考链接:(略)
题记:(略)
AC的C语言程序如下:
/* Bailian3721 和数 */
#include <stdio.h>
#include <string.h>
#define N 100
int a[N];
#define M 10000
int flag[M * 2 + 1];
int main(void)
{
int n, i, j;
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
memset(flag, 0, sizeof(flag));
for(i = 0; i < n; i++)
for(j = i + 1; j < n; j++)
flag[a[i] + a[j]] = 1;
int cnt = 0;
for(i = 0; i < n; i++)
if(flag[a[i]]) cnt++;
printf("%d\n", cnt);
return 0;
}
···