JS ACM模式
参考链接
1. JavaScript(V8)
V8主要是用readline()来读取输入,但是需要注意的是readline得到的是字符串,有时可能需要转换成数值,用parseInt()或者 .map(Number)
//split()方法用于把一个字符串分割成字符串数组。
//"123 4567 89".split(' ') 返回["123","456","78"]
//parseInt() 函数可解析一个字符串,并返回一个整数
//.map(Number)可以直接将字符串数组变为数字数组
// 1. 单行输入
while(line=readline()){
var lines = line.split(' ')//字符串转成字符数组
//var lines = line.split(' ').map(Number);
var a = parseInt(lines[0]);
var b = parseInt(lines[1]);
print(a+b);
}
// 2. 多行输入
// 2.1 第一行是输入行数N,接下来的N行每行均有输入
let n = parseInt(readline())
var inputs = [] //用数组inputs来存放输入
while(line = readline()){
line = parseInt(line)
inputs.push(line)
}
var res = new Set(inputs);
//多行输出
Array.from(res).sort((a,b)=>a-b).forEach(item=>console.log(item))
//2.2 输入结果是矩阵
//第一行为两个整数,分别表示二维数组的行数和列数。再输入相应的数组。
//矩阵的输入
while (line = readline()) {
let nums = line.split(' ')//读取第一行
var row = +nums[0]//第一行的第一个数为行数
var col = +nums[1]//第一行的第二个数为列数
var map = []//用于存放矩阵
for (let i = 0; i < row; i++) {
map.push([]);
let mapline = readline().split(' ');
for (let j = 0; j < col; j++) {
map[i][j] = +mapline[j];
}
}
}
2. Javascript(Node)
//split()方法用于把一个字符串分割成字符串数组。
//"123 4567 89".split(' ') 返回["123","456","78"]
//parseInt() 函数可解析一个字符串,并返回一个整数
//.map(Number)可以直接将字符串数组变为数字数组
// 1. 单行输入
var readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function(line){
//line为输入的单行字符串,split函数--通过空格将该行数据转换为数组。
var tokens = line.split(' ')
//数组arr的每一项都是字符串格式,如果我们需要整型,则需要parseInt将其转换为数字
console.log(parseInt(tokens[0]) + parseInt(tokens[1]))
//打印数组每个元素
for(let i=0; i<tokens.length; i++){
console.log(tokens[i])
}
});
// 2. 多行输入
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
const inputArr = [];//存放输入的数据
rl.on('line', function(line){
//line是输入的每一行,为字符串格式
inputArr.push(line.split(' '));//将输入流保存到inputArr中(注意为字符串数组)
}).on('close', function(){
console.log(fun(inputArr))//调用函数并输出
})
//解决函数
function fun() {
xxxxxxxx
return xx
}
第一题 a + b(单行输入)
输入
1 5
10 20
输出
6
30
//V8普通形式
while(line=readline()){
var lines = line.split(' '); //字符串转换为字符数组
var a = parseInt(lines[0]);
var b = parseInt(lines[1]);
print(a+b);
}
//V8函数形式
while(line=readline()){
var lines = line.split(' ').map(Number)
var a = lines[0]
var b = lines[1]
function add(a,b){
return a+b
}
console.log(add(a,b))
}
//node
var readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function(line){
var arr = line.split(' ').map(Number)
let a=arr[0]
let b=arr[1]
function sum(a,b){
return a+b
}
console.log(sum(a,b))
});
第二题 a + b(第一行是输入的行数)
输入
2
1 5
10 20
输出
6
30
var readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let num=0
rl.on('line', function(line){
if(num==0){
num=parseInt(line) //num的值就变成第一行的值
}else{
let [x,y]=line.split(" ").map(Number)
console.log(x+y)
}
})
第三题 a + b(多行输入)
//解法1
var readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function(line){
let [x,y]=line.split(" ").map(Number)
if(x==0 && y==0) return
console.log(x+y)
})
//解法2
var readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function(line){
if(line=='0 0'){
rl.close
}else{
let [x,y]=line.split(" ").map(Number)
console.log(x+y)
}
})
第四题
//解法1
const readline = require('readline');
const rl = readline.createInterface({
input:process.stdin,
output:process.stdout
});
rl.on('line', function(line){
let arr = line.split(' ').map(Number)
if(arr[0] == 0) return
//slice方法截取数组并返回新数组,(start,end)end可选,start必须选
//arr.slice(1)表示从下标1开始一直到末尾
//reduce方法计算数组元素相加后的总和
console.log(arr.slice(1).reduce((p, v) => p + v));
})
//解法2
const readline = require('readline');
const rl = readline.createInterface({
input:process.stdin,
output:process.stdout
});
let arr=[]
rl.on('line', function(line){
//把每行的输入都push到数组中
//最终arr=[ [ 4, 1, 2, 3, 4 ], [ 5, 1, 2, 3, 4, 5 ], [ 0 ] ]
arr.push(line.split(' ').map(Number))
})
rl.on('close',function(){
for(let i = 0; i < arr.length; i++){
if(arr[i][0]==0)break
arr[i].shift()
let sum = 0
for(let num of arr[i]){
sum += num
}
console.log(sum)
}
})
第五题
const readline = require('readline');
const rl = readline.createInterface({
input:process.stdin,
output:process.stdout
});
let num=0
rl.on('line', function(line){
if(num==0){
num=parseInt(line) //num的值就变成第一行的值
}else{
let arr = line.split(' ').map(Number)
console.log(arr.slice(1).reduce((p, v) => p + v));
}
})
第六题
const readline = require('readline');
const rl = readline.createInterface({
input:process.stdin,
output:process.stdout
});
rl.on('line', function(line){
let arr = line.split(' ').map(Number)
console.log(arr.slice(1).reduce((p, v) => p + v))
})
第七题
const readline = require('readline');
const rl = readline.createInterface({
input:process.stdin,
output:process.stdout
});
rl.on('line', function(line){
let arr = line.split(' ').map(Number)
console.log(arr.reduce((p, v) => p + v))
})
字符串排序一
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let n = 0
rl.on('line', function (line) {
if(n == 0){
n = parseInt(line)
}else{
let arr = line.split(' ');
let str = arr.sort().join(' ')
console.log(str);
}
})
字符串排序二
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function (line) {
let arr = line.split(' ');
let str = arr.sort().join(' ')
console.log(str);
})
字符串排序三
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function (line) {
let arr = line.split(',');
let str = arr.sort().join(',')
console.log(str);
})