测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A45701. 和数给定一个正整数序列, 判断其中有多少个数, 等于数列中其他两个数的和。 比如, 对于数列 1 2 3 4, 这个问题的答案就是 2, 因为 3 = 2 + 1,4 = 1 + 3。 65536输入共两行, 第一行是数列中数的个数 n ( 1 <= n <= 100), 第二行是由 n个不大于 10000 的正整数组成的数列, 相邻两个整数之间用单个空格隔开。输…

填空题 中等

题目描述

和数

给定一个正整数序列, 判断其中有多少个数, 等于数列中其他两个数的和。 比如, 对于数列 1 2 3 4, 这个问题的答案就是 2, 因为 3 = 2 + 1,4 = 1 + 3。

时间限制: 10000

内存限制: 65536

输入

共两行, 第一行是数列中数的个数 n ( 1 <= n <= 100), 第二行是由 n个不大于 10000 的正整数组成的数列, 相邻两个整数之间用单个空格

隔开。

输出

一个整数, 即数列中等于其他两个数之和的数的个数。

样例输入

4

1 2 3 4

样例输出

2

参考答案

#include <iostream> #include <algorithm> using namespace std; int num[105]; int vis[105]; int main(){ int n,count=0; cin>>n; for(int i=0;i<n;i++){ cin>>num[i]; } sort(num,num+n); for(int i=0;i<n;i++){ for(int j=0;j<i;j++){ for(int k=j+1;k<i;k++){ if(num[i]==num[j]+num[k]&&!vis[i]){ count++; vis[i]=1; break; } } } } cout << count <<endl; return 0; }
上一题 下一题