OJ系统Javascript、Nodejs的API更新
发布于 2017-08-24 12:26 11080 次浏览 1 赞 最后一次编辑是 2017-08-24 12:27 来自 资源分享  

各位亲:

OJ系统中Javascript和Nodejs的API更新了,欢迎大家批评指正。

使用JavaScript(Google V8 Engine(6.2.340))语言请注意:作答时不要进行DOM相关操作。API如下:

  • 读取size个字符:gets(size)

  •  将读取至多size个字符,当还未达到size个时如果遇到回车或结束符,提前结束。回车符可能会包含在返回值中。

  • 输出信息:printsth(sth, ...)

  •  往控制台输出sth,当有多个参数时,空格分隔;最后加回车。

  • 输出一行:print(sth, ...)

  •  往控制台输出sth,当有多个参数时,空格分隔;最后加回车。

  • 读取一个(长)整数:readInt()

  •  从控制台读取一个(长)整数。

  • 读取一个浮点型:readDouble()

  •  从控制台读取一个浮点型。

  • 读取一行输入:read_line()

  •  将读取至多1024个字符,当还未达到1024个时如果遇到回车或结束符,提前结束。回车符可能会包含在返回值中。

   对js v8 shell读取有任何建设性意见,欢迎提出,可以git clone https://github.com/acmcodercom/v8/tree/forstdio_baseon_6.2.340/samples,欢迎issue、star、fork、pull request。

var a, b;
var solveMeFirst = (a,b) => a+b;
while((a=readInt())!=null && (b=readInt())!=null){
    let c = solveMeFirst(a, b);
    print(c);
}


使用Nodejs(v6.9.1)语言时请注意,请使用node-stdio模块进行输入输出,具体API见:https://www.npmjs.com/package/node-stdio,本地安装时需要node-gyp,当然,您也可以使用process.stdin、process.stdout或readline。

var cmd = require('node-stdio')
var a, b;
var solveMeFirst = (a,b) => a+b;
while((a=cmd.readInt())!=null && (b=cmd.readInt())!=null){
    let c = solveMeFirst(a, b);
    cmd.print(c);
}


详见:http://oj.acmcoder.com/ExamNotice.html

我们会一如既往的改善各位考生的用户体验,祝同学们顺心、顺利的找到满意的工作。

20 条回复

第一次做本地全跑通结果放赛码网通过率直接百分之0。。。

输入多组数据我的写法是:

var n = readInt();//获得数据条数。

while(n>0){

    arr.push(read_line());//读取字符串存入数组

    n--;

}

所以那里有错麻烦指正...

2017-08-25 16:36
test 回复 coder_H7XHQU3Y

哪个题目?

2017-08-25 18:31

今晚360的G卷,有题比赛游泳体育运动员的,

    var n = readInt();

    var str = read_line();

    var arr = str.split(" ");

    var result = [n];

    

    for(var i = 0 ; i<=arr.length-1;i++){

    var count = 0;

        if(i == 0){

        result[i] = 0;

        } else {

        for(var j = 0;j <= i-1;j++){

            if(arr[i] < arr[j]){

                count++;

                }

            }

            result[i] = count ;

            count = 0;

        }

    }

    print(result.join(" "));


本地通过了,但是只通过10%,有时还说没有正确,求解!

2017-08-26 21:48
test 回复 宇哥哥

你这个是错了的。但是360还没同意放题解,所以我不能说你哪里错了。后台是由很多组测试用例的,你只通过了我们给出的一组样例数据。你想想看,自己构造点其他的数据。

2017-08-27 15:48

你们真的没事找事。

我刚刚会用以前的api,现在乱改。

傻逼到不行。

一道题都通过不了。

赛码网祝早死早超生。

2017-08-31 21:01
1
test 回复 acmcoderg3XX3fzL

以前的api还能用啊。只是给你新增了几个读整数、浮点数和输出的api。

2017-08-31 21:19
test 回复 acmcoderg3XX3fzL

read_line print不都还在吗?

2017-08-31 21:19
test 回复 coder_eqVsN3Eh

知道为啥吗?我告诉你,字符串和数字的区别了解吗?

2017-09-13 11:17
// to coder_eqVsN3Eh 4楼
var n = readInt();
var str = read_line().split(' ');
var c=getMaxMember(str);
function getMaxMember(str){
 var a=0;
 for(var i=0;i<str.length;i++){
  if(+str[i]>a){
   a=+str[i];
  }
 }
 return a;
}
print(c);


2017-09-13 11:18
1
test 回复 coder_eqVsN3Eh

要么用+,要么parseInt一下。见下楼。

2017-09-13 11:21
test 回复 acmcoderg3XX3fzL

去看看4楼,给你增加几个新api就是为了方便,如果他 for循环时也用readInt就不会有错误了。记住,你之前的训练用的api都还在,就是为了你们方便才新增的api。

2017-09-13 11:26

赛码该倒闭,到现在一次编程都没通过,什么垃圾输入输出;

2017-09-20 10:48
2

什么嘛,用给的输入输出,根本就通不过,按给的例子也不行,那还给例子干什么。本地都能通过。。。

2017-09-20 11:07

包括问答题,里面能插入代码,插入后就再没法修改了,害得重复写很多次。

2017-09-20 11:11
小码快跑 回复 acmcoderoBVgxbs7

点代码再点插入代码即可修改

2017-09-20 11:13
coder_T6AC35FF 回复 coder_GBZ5ERK5

我真的哭 我完全可以用C++写,但是只能用js什么鬼,我换成consloe.log()在本地正确,提交全挂 0  心态炸了

2017-09-20 11:46
test 回复 coder_GBZ5ERK5

心态正一些,每次考试,js能ac的一大堆,好好看看,对题意的理解很重要。

2017-09-20 16:21
test 回复 coder_T6AC35FF

题目下方写得很明白,读写API:gets(size)、readInt()、readDouble()、printsth(sth…)、print(sth…)、read_line(),具体参考第7条:http://oj.acmcoder.com/ExamNotice.html

2017-09-20 16:31

read_line() 至多读取1024个字符,被坑了,有几次考试都没过

2019-08-26 00:27
test 回复 coder_UHS2V23J

最近我验过的题目里面好像没有一行超过1024个字符的试题,您能否告诉我是哪个公司的哪个题目吗?

2019-08-26 09:43
添加回复
回到顶部