牛客网
https://www.nowcoder.com/discuss/276
**JavaScript(V8)**输入输出操作指南
一:单行输入,
牛客网V8引擎是利用了readline()接收输入的每一行,该行字符数不能超过1024个,否则会报错。
1 | let line=readline(); |
二:多行输入,
同理,好多同学对V8的多行输入示例不是很明白,其实它基于的readline()并不会像JS语言一样后面的会覆盖前面的语句,在这里readline是可以重载的,也就是说每一次调用readline()就会识别一行输入数据,多行输入其实就是写多个readline()即可。
固定行数输入:
1 | let lineNum; // 获取第一行输入的数字,即行数 |
任意行数输入:
1 | // 在单行的字符串中以空格作为分隔符,取出多个数据,并且数据转为整型: |
三:输出,
牛客网输出函数用 print()
和 console.log()
都可以,多行输入会根据你的print个数来自动折行;或者利用print(lines + ‘\n’);
来折行。
JavaScript(Node) 输入输出操作指南
单行输入
1 | var readline = require('readline') |
多行输入:
任意行输入:
1 | var readline = require('readline') |
固定行输入:
输入第一个数据为接下来要输入的行数
1 | const readline = require('readline'); |
输出
1 | console.log("你的结果"); |
赛码
使用 JavaScript (Google V8 Engine(6.2.340))语言的输入输出:
-
读取size个字符:gets(size)
将读取至多size个字符,当还未达到size个时如果遇到回车或结束符,会提前结束。回车符可能会包含在返回值中。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25let line;
let arr = new Array()
while (line = gets(5)) { // 读取5个字符,此处的 size 包含空格
arr.push(line) // 如下结果可得出,如果第5个元素是换行符,也会被读取
print(line)
}
/*
输入:
1 3 5
12345
1 23
3 4 0 3 5
5 4 8
输出:
1 3 5
12345
1 23
3 4 0
3 5
5 4
8
*/ -
输出信息:printsth(sth, …)
往控制台输出sth,当有多个参数时,用英文逗号分隔;最后不加回车。1
2
3
4
5
6
7
8
9
10printsth(1, 2, 46, 'a', 'b', '\n')
printsth('x', 'u')
printsth(1, 2, 46, 'a', 'b') // 不加 ‘\n’,则不换行
printsth('x', 'u')
/*
输出:
1 2 46 a b
x u
1 2 46 a bx u
*/ -
输出一行:print(sth, …) console.error(sth, …) console.debug(sth, …) console.info(sth, …) console.log(sth, …)
往控制台输出sth,当有多个参数时,用英文逗号分隔;最后加回车。1
2
3
4
5
6
7print(1, 2, 46, 'a', 'b') // 每执行一个 print,就输出一行新增加的 print 会自动换行
print('x', 'u')
/*
输出:
1 2 46 a b
x u
*/ -
读取一个(长)整数:readInt()
从控制台读取一个(长)整数。1
2
3
4
5
6
7
8
9
10
11
12
13
14let line;
while (line = readInt()) { // 读取到小数点或者空行时,直接挑出
print(line)
}
/*
输入:
188
29.4
203 9
0.01
输出:
188
29
*/ -
读取一个浮点型:readDouble()
从控制台读取一个浮点型。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18let line;
while (line = readDouble()) {
print(line)
}
/*
输入:
188
29.4
203 9
0.01
输出:
188
29.4
203
9
0.01
*/ -
读取一行输入:read_line()
将读取至多1024个字符,当还未达到1024个时如果遇到回车或结束符,提前结束。读取多行最简单的办法是while((line = read_line()) != ‘’)。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18let line;
while (line = read_line()) {
print(line)
}
/*
输入:
188
a b c
29 4
203 9
0.01
输出:
188
a b c
29 4
203 9
0.01
*/
对于每组测试用例(即输入):
第一行包括2个整数,N(1 <= N <= 1000),M(0 <= M <= N*(N-1)/2),代表现有N个人(用1~N编号)和M组关系;
在接下来的M行里,每行包括3个整数,a,b, c,如果c为1,则代表a跟b是同乡;如果c为0,则代表a跟b不是同乡;
已知1表示小赛本人。
1 | var N, M; |