地下党 發表於 2022-4-29 23:17:00

ACM格式javascript 输入输出

<p>ACM需要自己定义输入和输出,针对js来说,有两种模式读取输入和打印输出,v8和node<br>
请同时参考:牛客网ACM模式下JavaScript(V8)常见输入输出练习<br>
https://ac.nowcoder.com/acm/contest/5657#question<br>
https://blog.csdn.net/SpringRolls/article/details/116506148</p>
<h1 id="jsv8">js(V8)</h1>
<p>使用 V8模式,主要使用 readline()读取每一行。<br>
本质上输入的都是字符串,需要转化为数字。<br>
同时也要注意不同的输入方式需要不同的处理。</p>
<h2 id="输入">输入</h2>
<p>注意输入和split后每个元素都是string,所以如果输入的是数字或者Number数组,需要转化数字。</p>
<h3 id="一行输入一个int数字">一行输入一个int数字</h3>
<p>用readline读取一行,然后转化为int。</p>
<pre><code class="language-javascript">ParseInt(readline())
</code></pre>
<h3 id="1-单行输入-一行为一个一维数组">1 单行输入 一行为一个一维数组</h3>
<h4 id="输入为1-2-3的形式">输入为1 2 3的形式</h4>
<p>.map(Number)实际就是遍历数组每一项,转化为数字。记住这种写法,最简便。</p>
<pre><code class="language-javascript">let a=readline().split(' ').map(Number)
</code></pre>
<h4 id="输入为123的形式">输入为123的形式</h4>
<p>与上面的区别是split的参数不是空格而是’'。</p>
<pre><code class="language-javascript">let a=readline().split('').map(Number)
</code></pre>
<h3 id="2-固定行数的多行输入">2 固定行数的多行输入</h3>
<pre><code class="language-js">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);
</code></pre>
<h3 id="3-任意的多行输入">3 任意的多行输入</h3>
<pre><code class="language-javascript">while (line = readline()) {
    var lines = line.split(' ');
    var a = parseInt(lines);
    var b = parseInt(lines);
    print(a + b);
}
</code></pre>
<h3 id="4-第一行是接下来输入数据的行数的多行输入">4 第一行是接下来输入数据的行数的多行输入</h3>
<pre><code class="language-js">var n=parseInt(readline());
var ans=0
for(var i=0;i&lt;n;i++){
lines=readline().split(" ")
for(var j=0;j&lt;lines.length;j++){
    ans +=parseInt(lines)
}
}
print(ans)
</code></pre>
<h2 id="输出数组输出为输入类似的形式">输出(数组输出为输入类似的形式)</h2>
<p>其余输出较简单,这里仅记录几种特殊不同情况的输出处理。</p>
<h3 id="数组输出为123">数组输出为1,2,3</h3>
<p>使用toString()方法,注意js的toString()转数组和其他语言不同,只是去掉括号,中间的数字和逗号都在。</p>
<pre><code class="language-javascript">let a=;
console.log(a.toString());
</code></pre>
<p>使用join() 方法把数组中的所有元素转换一个字符串。其中参数指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。</p>
<pre><code class="language-javascript">let a=;
console.log(a.join()); //或者a.join(',')
</code></pre>
<h3 id="数组输出为1-2-3">数组输出为1 2 3</h3>
<p>使用join方法,指定空格为分隔符</p>
<pre><code class="language-javascript">let a=;
console.log(a.join(' '));
</code></pre>
<p>使用...扩展运算符</p>
<pre><code>let a=;
console.log(...a);
</code></pre>
<h3 id="数组输出为123-1">数组输出为123</h3>
<p>使用join方法</p>
<pre><code class="language-javascript">let a=;
console.log(a.join(''));
</code></pre>
<h1 id="jsnode">js(Node)</h1>
<p>要用require(‘readline’)来引入输入的值<br>
直接用console.log就可以输出</p>
<h3 id="1-单行输入">1 单行输入</h3>
<pre><code class="language-javascript">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) + parseInt(tokens));
});
</code></pre>
<h3 id="2-固定行数的多行输入-1">2 固定行数的多行输入</h3>
<pre><code class="language-js">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); //输出结果
    }
});
</code></pre>
<h3 id="3-第一行是接下来输入数据的行数的多行输入">3 第一行是接下来输入数据的行数的多行输入</h3>
<pre><code class="language-js">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); //输出结果
      }
    }
});
</code></pre>
<h3 id="补">补</h3>
<pre><code class="language-javascript">//处理输入,保存到数组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));//调用解决函数并输出
})

//解决函数
function findMinNum(n) {
        xxxxxxxx
        return xx
}
</code></pre><br><br>
来源:https://www.cnblogs.com/user-yi/p/16209061.html
頁: [1]
查看完整版本: ACM格式javascript 输入输出