请知道例如如何在hackerrank上使用stdin和stdout运行功能
function getPrimes(n){
nextPrime:
for (let i = 2; i <= n; i++) { // for each i...
for (let j = 2; j < i; j++) { // look for a divisor..
if (i % j == 0) continue nextPrime; // not a prime, go next i
}
console.log(i) ; // a prime
}
}
然后使用过程。 stdin和stdout逻辑显示结果
答案 0 :(得分:1)
Hackerrank文档中没有提到这一点。
这就是我的工作方式。
// It will work on Javscript(nodejs), not sure about others
fs.createWriteStream(process.env.OUTPUT_PATH).write("Your Output");
答案 1 :(得分:1)
对我来说,写对我有用的东西
process.stdout.write("some answer")
答案 2 :(得分:0)
查看正在使用的函数的使用方式。例如,对于getPrimes
,请在HackerRank 内置代码中查找getPrimes
的其他用途。例如,在sample test中,有一个问题要求我完成一个findNumber
函数:
'use strict';
const fs = require('fs');
process.stdin.resume();
process.stdin.setEncoding('utf-8');
let inputString = '';
let currentLine = 0;
process.stdin.on('data', function(inputStdin) {
inputString += inputStdin;
});
process.stdin.on('end', function() {
inputString = inputString.split('\n');
main();
});
function readLine() {
return inputString[currentLine++];
}
// Complete the findNumber function below.
function findNumber(arr, k) {
}
function main() {
const ws = fs.createWriteStream(process.env.OUTPUT_PATH);
const arrCount = parseInt(readLine().trim(), 10);
let arr = [];
for (let i = 0; i < arrCount; i++) {
const arrItem = parseInt(readLine().trim(), 10);
arr.push(arrItem);
}
const k = parseInt(readLine().trim(), 10);
const res = findNumber(arr, k);
ws.write(res + '\n');
ws.end();
}
在行中调用函数findNumber
const res = findNumber(arr, k);
,其返回值分配给res
。 如果使用了被调用函数的返回值,则应该始终返回一个值。否则,如果未使用它,例如该行刚刚
findNumber(arr, k);
然后返回值将被忽略,因此您的输出可能取决于调用console.log
的方式。
在您的情况下,您应该可能 return
getPrimes
中的一个值,以便HR可以解析它。不确定挑战的要求是什么,但也许像
function getPrimes(n) {
const arrOfPrimes = [];
nextPrime: for (let i = 2; i <= n; i++) { // for each i...
for (let j = 2; j < i; j++) { // look for a divisor..
if (i % j == 0) continue nextPrime; // not a prime, go next i
}
arrOfPrimes.push(i);
}
return arrOfPrimes;
}
或遵循这些原则的东西-如果在某个地方使用了return
调用的结果,只需确保在最后getPrimes
进行了一些处理。