/*
1,整理这个题目中所有关键的变量和信息  

n 正整数的个数  各个不相同

int arr[105]; 装各个数的数组 
int brr[10005];统计可能出现的和 

2,题目给的样例的运算逻辑,
用表达式或者伪代码表示出来 

其中有多少个数,
恰好等于集合中另外两个(不同的)数之和?

5
1 2 3 4 5

能找到答案的2  1+2=3 1+3=4 2+3=5 1+4 =5   

输入完所有数字以后  去算所有的可能性 做统计  
一定要去考虑数组下标的界限  
*/
#include <bits/stdc++.h>
using namespace std;
int arr[105],brr[10005];
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++) cin>>arr[i];
	//去计算所有的可能性 1000W 
	for(int i=1;i<n;i++){ //前面一个数 
		for(int j=i+1;j<=n;j++){//后面一个数 
			if(arr[i]+arr[j] >10000) continue;
			brr[arr[i]+arr[j]] = 1;
		}
	} 
//	for(int i=1;i<=10000;i++){
//		if(brr[i]==1){ //如果被加出来过就输出 
//			cout<<i<<" ";
//		}
//	}
	int cnt=0;
	for(int i=1;i<=n;i++){ //看arr里面的数 是否是加出来的和 
		if(brr[arr[i]]==1) cnt++;
	}
	cout <<cnt;
	return 0;
}

0 条评论

目前还没有评论...

信息

ID
188
时间
1000ms
内存
256MiB
难度
5
标签
递交数
23
已通过
14
上传者