好多同学对V8的多行输入示例不是很明白,其实它基于的readline()并不会像JS语言一样后面的会覆盖前面的语句,在这里readline是可以重载的,也就是说每一次调用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 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), 表示数据组数。
接下来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);
}
多写一行读取提示性输入,第一行没用,用readline消耗掉
例六:对输入的字符串进行排序后输出
let k=readline();
let line=readline();
let p=line.split(' ')
print(p.sort().join(' '))