我们都所知,acm算法题一般用c++或者java敲比较多。一个是效率搞,运行速度快,另外一个是处理输入输出比较简单。随着javascript语言的不断完善,我们如今也可以用js这门语言来实现算法题。作为喜欢算法的前端,难道不心动咩~但是支持js编写的OJ网站并不多,有下来两个:
第一个是日本的,需要翻墙就不说了。第二个是毛子的codeforce,里面很多算法牛人。这偏文章就讲讲怎么在这个oj上用js编写和运行代码,并拿到 Accpet
。
一、安装v8引擎环境
因为codeforce上运行JS是利用v8引擎,我们必须下载v8的二进制包。对于window系统,官网给我们提供安装包。对于linux和Mac需要手动编译v8,这个自行度娘~
下载完安装包,我们还要配置环境变量;比如我们下载解压到D:\v8文件夹,把这个路径加到path环境变量中就ok了。
在cmd控制台中输入d8 -v,如果安装配置成功会显示对应的版本号。
二、处理题目的输入输出
我们知道用c++搞算法题使用标准输入输出cin,cout。对于JS我们用的输入流函数readline()
和输出 print()
,比如我们输入a,b两个数,输出a+b的和;
main.js:
var line = readline().split(' ');
var a = line[0];
var b = line[1];
print(parseInt(a)+parseInt(b);
在cmd中进入该工程目录,输入 d8 main.js
来编译运行代码,如下图:
三、OJ实战
进入codeforce网站,随便选一道水题,用JS搞搞试试,比如下面这道题目:
http://codeforces.com/contest/732/problem/A
代码:
(function main(){
var price,
deno,
line;
line = readline().split(' ');
price = line[0];
deno = line[1];
for(var i =1;;i++){
var all = i*price;
if(all%10==0){
print(i);
break;
}
else if((all-deno)%10==0){
print(i);
break;
}
}
})();
点击submit code按钮提交代码:
选择语言javascript,点击提交查看运行效果:
note:因为codeforce是源码开放的,所以你可查看别人的JS代码,非常方便。所以前端的小伙伴们还不用算法提升逼格!