每一次调用readline()就会识别一行输入数据,多行输入其实就是写多个readline()即可。
固定行数输入:
任意行数输入:
注意:readline得到的是字符串,计算需要转化为数字
输出
牛客网输出函数用print()和console.log()都可以。多行输入会根据你的print个数来自动折行;或者利用print(lines + ‘\n’);来折行。
例一:
while(line = readline()){ // readline 得到的是字符串
let p = line.split(' ');
let a = parseInt(p[0]); // 单行第一个参数 转化成了数字
let b = parseInt(p[1]); // 单行第二个参数 转化成了数字
print(a+b);
}
例二:
let K = parseInt(readline()); // 读取行数
let inputs = [];
for(let i = 0;i < K; i++){
line = readline()
let p = line.split(' ');
inputs.push(p)
}
function add(inputs){ // 得到 inputs 后,用函数处理
for(let i=0; i<2*K; i++){
let a = parseInt(inputs[i]);
let b = parseInt(inputs[i+1])
print(a+b);
i = i+1
}
}
add(inputs)
例三:
输入包括两个正整数a,b,输入数据有多组,如果输入为0,则结束输入。
let inputs = [];
let K = 0
while(line = readline()){
let p = line.split(' ');
let a = parseInt(p[0]);
let b = parseInt(p[1])
if(a==0 && b==0) break;
inputs = inputs.concat(p)
K++
}
function add(inputs){ // 得到 inputs 后,用函数处理
for(let i=0; i<2*K; i++){
let a = parseInt(inputs[i]);
let b = parseInt(inputs[i+1])
print(a+b);
i = i+1
}
}
add(inputs)
例四:
输入数据包括多组。
每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100),n为0的时候结束输入。接下来n个正整数,即需要求和的每个正整数。
while(line = readline()){
let add = 0
let p = line.split(' ');
let n = parseInt(p[0]);
if(n == 0)break;
for(let i=1; i<=n; i++){
add = add + parseInt(p[i]);
}
print(add);
}
例五:
输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。 注意:多写一行读取提示性输入,第一行没用,用readline消耗掉
接下来t行, 每行一组数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
let k = readline()//多写一行读取提示性输入,第一行没用,用readline消耗掉
while(line = readline()){
let add = 0
let p = line.split(' ');
let n = parseInt(p[0]);
if(n == 0)break;
for(let i=1; i<=n; i++){
add = add + parseInt(p[i]);
}
print(add);
}
例六:对输入的字符串进行排序后输出
let k = readline();
let line = readline();
let p = line.split(' ')
print(p.sort().join(' '))