# 多语言解编程题之数列第N大

## JavaScript(Node)实现

``````const readline = require('readline');
input: process.stdin,
output: process.stdout
});
let flag = true;
let str, idx;
rl.on('line', function(line) {
if (flag) {
str = line;
flag = false;
} else {
idx = line;
console.log(findBigNum(str, idx));
flag = true;
}
});

function findBigNum(str, idx) {
let arr = str.split(' ').map(val => +val);
arr.sort((a, b) => b - a);
return arr[idx - 1];
}
``````

## PHP实现

``````<?php
\$handle = fopen("php://stdin", "r");
\$line = fgets(\$handle);
\$flag = true;
while (\$line !== "") {
if (\$flag) {
\$str = \$line;
\$flag = false;
} else {
\$idx = \$line;
echo findBigNum(\$str, \$idx) . "\n";
}
\$line = fgets(\$handle);
}
fclose(\$handle);

function findBigNum(\$str, \$idx) {
\$arr = array_map("intval", explode(" ", \$str));
rsort(\$arr);
return \$arr[\$idx - 1];
}
``````

## C++实现

``````#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
using namespace std;

int findBigNum(string str, string idx) {
stringstream iss(str);
int number;
vector<int> vec;
while(iss >> number) {
vec.push_back(number);
}
sort(vec.begin(), vec.end(),
[](const int a, const int b) {
return b < a;
}
);
return vec[atoi(idx.c_str()) - 1];
}

int main() {
string line;
bool flag = true;
string str, idx;
while (getline(cin, line)) {
if (flag) {
str = line;
flag = false;
} else {
idx = line;
cout << findBigNum(str, idx) << endl;
flag = true;
}
}
return 0;
}
``````