题目链接:http://noi.openjudge.cn/ch0201/2722/
- 总时间限制: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
算法分析:注意利用下标。
1 #include <stdio.h> 2 int main(int argc, char *argv[]) 3 { 4 int n,i,j,k,a[102],b[200005]={0},count=0; 5 scanf("%d",&n); 6 for(i=0;i<n;i++) 7 scanf("%d",&a[i]); 8 for(i=0;i<n-1;i++) 9 { 10 for(j=i+1;j<n;j++) 11 { 12 //printf("team:%d %d\n",a[i],a[j]); 13 k=a[i]+a[j]; 14 b[k]=1; 15 } 16 } 17 for(i=0;i<n;i++) 18 { 19 if(b[a[i]]==1) 20 { 21 count++; 22 //printf("sum:%d\n",a[i]); 23 } 24 } 25 printf("%d\n",count); 26 return 0; 27 }