2018/7/31

1003:和数

总时间限制:
1000ms
内存限制:
65536kB
描述
给定一个整数序列,判断其中有多少个数,等于数列中其他两个数的和。 比如,对于数列1 2 3 4, 这个问题的答案就是2, 因为3 = 2 + 1, 4 = 1 + 3。
输入
第一行是一个整数T,表示一共有多少组数据。 1<= T <= 100
接下来的每组数据共两行,第一行是数列中数的个数n ( 1 <= n <= 100),第二行是由n个整数组成的数列。
输出
对于每组数据,输出一个整数(占一行),就是数列中等于其他两个数之和的数的个数。
样例输入
2
4
1 2 3 4
5
3 5 7 9 10
样例输出
2
1
 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int T,n;
 6     cin >> T;
 7     int result[T];
 8     int num = 0;
 9     for(int m = 0;m < T;m++){
10         cin >> n;
11         int a[n];
12         for(int i = 0;i < n;i++){
13             cin >> a[i];
14         }
15         for(int i = 0;i < n;i++){
16             for(int j = 0;j < n;j++){
17                 for(int k = j+1;k < n;k++){
18                     if(a[j]+a[k]==a[i] && j!=i && k!=i){
19                         num++;
20                         j = k = n-1;//意思是:如果i所在的数已经被选出来,那么j和k直接跳到最后,也就是选出来的数不能重复
21                     }
22                 }
23             }
24         }
25         result[m] = num;
26         num = 0;
27     }
28     for(int i = 0;i < T;i++)    cout << result[i] << endl;
29     return 0;
30 }

 

posted @ 2018-08-01 01:16  抹茶奶绿不加冰  阅读(148)  评论(0编辑  收藏  举报