【问题描述】 一名科研人员的h指数是指他至多有h篇论文分别被引用了至少h次。给定一个科研人员每篇论文的引用数目,计算其H指数。 【输入形式】 每篇论文的引用数目,用逗号隔开 【输出形式】 H指数 【样例输入】 1,3,5,6,8,12,34,4,5,7,8,12,43,100,19,21,32,40,117,78 【样例输出】 8,C++实现
时间: 2023-07-27 15:16:58 浏览: 138
好的,根据您的要求,以下是我的回答:
根据您给出的输入,我们可以将引用数目进行排序,从高到低排列。然后从前往后遍历数组,找到第一个引用数目小于等于当前位置的下标,该下标即为H指数。具体实现过程可以参考以下C++代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
string input;
getline(cin, input);
vector<int> citations;
size_t pos = 0;
string token;
while ((pos = input.find(',')) != string::npos) {
token = input.substr(0, pos);
citations.push_back(stoi(token));
input.erase(0, pos + 1);
}
citations.push_back(stoi(input));
sort(citations.begin(), citations.end(), greater<int>());
int h_index = 0;
for (int i = 0; i < citations.size(); i++) {
if (citations[i] <= i) {
h_index = i;
break;
}
}
cout << h_index << endl;
return 0;
}
```
以上是我的回答,希望能够帮助到您。