牛客网还有赛码平台与力扣网站不同,牛客网和赛码均要求自己获取输入
赛码网获取输入为read_line()
牛客网获取输入为readline()
牛客网与赛码均要求print()输出
其中需要注意的是一定要严格按照示例的效果输出,一个空格一个换行都不能错(这里觉得很坑)
举例来说,上面的题目用Js书写的话我一开始写的是如下代码
let come = readline().split(' ')
let n = parseInt(come[0])
let l = parseInt(come[1])
while(l<=100){
let head = ((2*n)-(l*(l-1)))/(2*l)
let headInt=Math.floor(head)
if(head==headInt && head>=0){
for(let i=head;i<head+l;i++){
print(i)
}
break
}
l+=1
}
if(l==101){
print('No')
}
最终的运行结果出错
这里就涉及到一个麻烦的点,在python中使用print的时候可以通过print(‘内容’,end=’ ')来实现同一行输出结果的目的
但是在js中查阅了很多资料也没发现可以直接将数据在同一行输出的方法,也就是说运行一次print()就得换一次行。
为了解决这个问题,我将代码修改成下面所示,将结果输入到数组中,然后将数组通过.join()的方法将内容输出出来。具体如下所示
let come = readline().split(' ')
let n = parseInt(come[0])
let l = parseInt(come[1])
let arr=[]
while(l<=100){
let head = ((2*n)-(l*(l-1)))/(2*l)
let headInt=Math.floor(head)
if(head==headInt && head>=0){
for(let i=head;i<head+l;i++){
arr.push(i)
}
print(arr.join(' '))
break
}
l+=1
}
if(l==101){
print('No')
}
最终顺利通过