您的位置:首页 > 其它

1117. Eddington Number(25)[基础逻辑题]

2017-05-21 21:22 423 查看

1. 原题: https://www.patest.cn/contests/pat-a-practise/1117

2. 思路:

题意:基础逻辑题。

在一组数中,找出m个数都大于m的。

思路:

数字按照降序排序,设置一个变量cnt,然后开始遍历比较即可。

已AC。

3. 源码:

#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>//使用仿函数greater<int>()
using namespace std;

int main()
{
//freopen("in.txt", "r", stdin);
int N;
cin >> N;
vector<int> v(N);
for (int i = 0; i < N; i++)
{
cin >> v[i];
}
sort(v.begin(), v.end(), greater<int>());//降序

int cnt = 1;//初始1,不能是0.因为第一天是有一天是大于1的。
for (int i = 0; i < N; i++)
{
if (v[i] > cnt)
cnt++;
else
{
break;
}
}
cout << --cnt << endl;//此时的cnt是多了1,要减去

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PAT 甲级 数学逻辑