牛课网OJ规则
用readLine()代替read_line()
用readLine()代替read_line()
用readLine()代替read_line()
用readLine()代替read_line()
用readLine()代替read_line()
多行输入/单行输入(均适用)
V8:
// 链接:https://www.nowcoder.com/discuss/276
while(line=readline()){
var lines = line.split(' ');
var a = parseInt(lines[0]);
var b = parseInt(lines[1]);
print(a+b);
}
node.js
process.stdin.resume();
process.stdin.setEncoding("utf8");
process.stdin.on("data", function(chunk) { // data不用管, chunk代表输入的数据
// 单个数字:[1]
var n = parseInt(chunk);
// 单行多个数字:[1 2 3]
var arr = chunk.trim().split(" ");
var n0 = parseInt(arr[0]);
var n1 = parseInt(arr[1]);
// 单行多个数字:
var n0 = parseInt((arr[0].trim().split(" "))[0]);
var n1 = parseInt((arr[0].trim().split(" "))[1]);
// 多行处理:
var datas = chunk.trim().split("\n"); // 一行一行的读入数据
// n个数字的读取:(此处假设为第3行数字(则有data[2]),因为下标从0开始)
// [1 2 3 4 5]
var arr = datas[2].trim().split(" ");
var newArr = arr.map(function(item) { // 对arr数组用map里面的函数返回一个新数组(此处主要是转换为数字)
return parseInt(item);
});
// 以此读取
for(var j = 0;j < n; j++){
console.log(newArr[j]);
}
});
实例:
好多鱼问题:
牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼B大小的2倍到10倍(包括2倍大小和10倍大小),鱼A会吃掉鱼B。考虑到这个,牛牛要放入的鱼就需要保证:
1、放进去的鱼是安全的,不会被其他鱼吃掉
2、这条鱼放进去也不能吃掉其他鱼
鱼缸里面已经存在的鱼已经相处了很久,不考虑他们互相捕食。现在知道新放入鱼的大小范围minSize,maxSize,牛牛想知道有多少种大小的鱼可以放入这个鱼缸。
输入数据包括3行.
第一行为新放入鱼的尺寸范围minSize,maxSize(1 ≤ minSize,maxSize ≤ 1000),以空格分隔。
第二行为鱼缸里面已经有鱼的数量n(1 ≤ n ≤ 50)
第三行为已经有的鱼的大小fishSize[i](1 ≤ fishSize[i] ≤ 1000),以空格分隔。
输出描述:
输出有多少种大小的鱼可以放入这个鱼缸。考虑鱼的大小都是整数表示
输入:
1 12
1
1
输出:
3
process.stdin.resume();
process.stdin.setEncoding("utf8");
process.stdin.on("data", function(chunk) {
var datas = chunk.trim().split("\n"); // 一行一行的读入数据
var sizes = datas[0].trim().split(" "); // 第一行的多个数据按空格划分开
var minSize = parseInt(sizes[0]); // 第一行的第一个数据
var maxSize = parseInt(sizes[1]); // 第一行的第二个数据
var num = parseInt(datas[1]); // 第二行的单个数据(鱼的数量)
var size = datas[2].trim().split(" "); // 第三行的多个数据按空格划分
var fishSize=size.map(function(item){ // 对size数组用map里面的方法返回一个新数组
return parseInt(item);
});
var count = 0;
for(var i = minSize;i<=maxSize;i++){
var flag = false;
for(var j = 0;j<num;j++){
if((i<=fishSize[j]*10&&i>=fishSize[j]*2)||(10*i>=fishSize[j]&&2*i<=fishSize[j])){
flag = true;
break;
}
}
if(!flag){
count++;
}
}
console.log(count);
});
输入单个数字
求质数因子:
功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
最后一个数后面也要有空格
输入:
180
输出:
2 2 3 3 5
var readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
ternimal:false
});
rl.on('line', function(line){
console.log(calc(line));
});
function calc(num) {
var arr = [];
while(num !== 1){
for(var i = 2;i <= num; i++){
if(num % i === 0){
arr.push(i+" ");
num = num / i;
break;
}
}
}
return arr.join('');
}
单行文本输入
//系统函数引用
var readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
//////////////////////////////////////
rl.on('line', function(line){
var tokens = line.split(' ');
console.log(parseInt(tokens[0]) + parseInt(tokens[1]));
});