2722:和数

题目链接: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
",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
",a[i]);
23         }
24     }
25     printf("%d
",count);
26     return 0;
27 }
原文地址:https://www.cnblogs.com/huashanqingzhu/p/7286313.html