记录一下牛客网输入输出总结。上午笔试又被虐了。上午的题目是
给出n组数,每组两个(a,b),第i次操作可以对其中一个数加i,输出使得ab相等的最小操作次数
输入:
n
a1 b1
a2 b2
输出:
c1
c2
c3
1.模板
- 单行输入
var line =readline() - 多行输入
var lineNum=parseInt(readline())
for(var i=0;i<lineNum;i++){
var lines=readline();
}
- 未知行输入
while(line = readline()){ //每次获取一行的数据
var lines = line.split(' ')//每一行又按照空格取出
var a = parseInt(lines[0])
var b = parseInt(lines[1])
console.log(a + b)
}
2. 牛客网例子
例: A+B(未知行;遇到俩0则直接结束)
- 未知行
- 每一行可知输入数
输入
1 2
0 0
输出
3
while(line=readline()){
lines=line.split(' ')
let a=parseInt(lines[0])
let b=parseInt(lines[1])
if(a===0&&b===0){
break
}else{
print(a+b)
}
}
例:A+B(未知行;每行首数字表示每组元素个数;遇到俩0则直接结束)
while(line=readline()){
lines=line.split(' ')
let n=parseInt(lines[0])
if(n===0){
break
}else{
let sum=0
//从下标1(第二个数)开始,到每行最后一个数字结束,所以最后一个数的下标是n
//每行的长度n+1
for(let i=1;i<n+1;i++){
sum=sum+parseInt(lines[i])
}
print(sum)
}
}
例:排序字符串数组
输入
5
c d a bb e
输出
a bb c d e
let m=readline()
//一行的情况,多行还是用while
let arr = readline().split(' ')
print(arr.sort().join(' '))
字符串转数字数组
输入
2
12 5
23 6
输出
[12,5,23,6]
let num = readline( )
let arr = []
let n=0
while(n=readline()){
n=n.split(' ').map(item=>{
return Number(item)
})
arr.push(n)
}
print(arr)