ACM格式javascript 输入输出

ACM需要自己定义输入和输出,针对js来说,有两种模式读取输入和打印输出,v8和node
请同时参考:牛客网ACM模式下JavaScript(V8)常见输入输出练习
https://ac.nowcoder.com/acm/contest/5657#question
https://blog.csdn.net/SpringRolls/article/details/116506148

js(V8)

使用 V8模式,主要使用 readline()读取每一行。
本质上输入的都是字符串,需要转化为数字。
同时也要注意不同的输入方式需要不同的处理。

输入

注意输入和split后每个元素都是string,所以如果输入的是数字或者Number数组,需要转化数字。

一行输入一个int数字

用readline读取一行,然后转化为int。

ParseInt(readline())

1 单行输入 一行为一个一维数组

输入为1 2 3的形式

.map(Number)实际就是遍历数组每一项,转化为数字。记住这种写法,最简便。

let a=readline().split(' ').map(Number)

输入为123的形式

与上面的区别是split的参数不是空格而是’'。

let a=readline().split('').map(Number)

2 固定行数的多行输入

var line_1 = readline(); var line_2 = readline(); var result_1= line_1.split(' '); //获取第一行的内容,存为数组 var result_2= line_2.split(' '); //获取第二行的内容,存为数组 print(result_1,result_2);

3 任意的多行输入

while (line = readline()) { var lines = line.split(' '); var a = parseInt(lines[0]); var b = parseInt(lines[1]); print(a + b); }

4 第一行是接下来输入数据的行数的多行输入

var n=parseInt(readline()); var ans=0 for(var i=0;i<n;i++){ lines=readline().split(" ") for(var j=0;j<lines.length;j++){ ans +=parseInt(lines[j]) } } print(ans)

输出(数组输出为输入类似的形式)

其余输出较简单,这里仅记录几种特殊不同情况的输出处理。

数组输出为1,2,3

使用toString()方法,注意js的toString()转数组和其他语言不同,只是去掉括号,中间的数字和逗号都在。

let a=[1,2,3]; console.log(a.toString());

使用join() 方法把数组中的所有元素转换一个字符串。其中参数指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

let a=[1,2,3]; console.log(a.join()); //或者a.join(',')

数组输出为1 2 3

使用join方法,指定空格为分隔符

let a=[1,2,3]; console.log(a.join(' '));

使用...扩展运算符

let a=[1,2,3]; console.log(...a);

数组输出为123

使用join方法

let a=[1,2,3]; console.log(a.join(''));

js(Node)

要用require(‘readline’)来引入输入的值
直接用console.log就可以输出

1 单行输入

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])); });

2 固定行数的多行输入

var readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); //固定行数的多行输入 const lines = []; var num=3; //设定输入行数 var rows=[]; //用于存储每行的输入 rl.on('line',function(data){ rows.push(data); //将每次输入的行数据存入 if(num === rows.length){ //输入的行数等于num值 console.log(rows); //输出结果 } });

3 第一行是接下来输入数据的行数的多行输入

const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); var k = -1; //初始化行数为-1,表示还未开始 var rows = []; //用于存储每行的输入 rl.on('line',function(data){ if(k === -1){ k = parseInt(data.trim()); //读取第一行,获取接下来输入的行数 }else{ rows.push(data.trim()); //将每次输入的行数据存入 if(k === rows.length){ //当输入的行数等于设定的k值时,开始逻辑处理 console.log(rows); //输出结果 } } });

//处理输入,保存到数组inputArr中 const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const inputArr = []; rl.on('line', function(line){ inputArr.push(parseInt(line));//将输入流转换为数字类型保存到inputArr中 }).on('close', function(){ console.log(findMinNum(inputArr[0]));//调用解决函数并输出 }) //解决函数 function findMinNum(n) { xxxxxxxx return xx }

__EOF__

本文作者衣囧~
本文链接https://www.cnblogs.com/user-yi/p/16209061.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   衣囧~  阅读(2525)  评论(3编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示