【JS编程练习】赛码网各种练习

1.上台阶
var
n, array = [], m,array2 = []; n = read_line();n = parseInt(n); while(m = read_line()){ array.push(parseInt(m)); } for(var i = 0; i < n; i++){ array2[i] = func(array[i]); } for(var x = 0; x < array2.length; x++){print(array2[x]);} function func(m){ if(m >= 4){ return func(m - 1) + func(m - 2); }else if(m == 3){ return 2; }else if(m == 2){ return 1; }else if(m == 1){ return 0; } }

 2.约德尔测试

 

var input = read_line();
var input2 = read_line();
var trans = "";
var reg = /[a-zA-Z0-9]/;
for(var i = 0; i < input.length; i++){
  if(reg.test(input[i])){
    trans = trans + "1";
  }else{
    trans = trans + "0";
  }
}
var count = 0;
for(i = 0; i< input.length; i++){
  if(trans[i] == input2[i]){
    count++;
  }
}
print((count/input.length*100).toFixed(2) + "%");

 3.分苹果

题目描述

果园里有堆苹果,N(1<N<9)只熊来分。第一只熊把这堆苹果平均分为N份,多了一个,它把多的一个扔了,拿走了一份。第二只熊把剩下的苹果又平均分成N份,又多了一个,它同样把多的一个扔了,拿走了一份,第三、第四直到第N只熊都是这么做的,问果园里原来最少有多少个苹果?

输入

 

输入1个整数,表示熊的个数。它的值大于1并且小于9。

 

样例输入

 

5

 

输出

 

为1个数字,表示果园里原来有的苹果个数。

 

样例输出

 

3121

var tem;
var N = read_line();N = parseInt(N);
for(var i = 1;; i++){
    tem = i;
    for(var j = 1; j <=N; j++){
        tem = (tem - 1)/N * (N - 1);
    }
    if(Math.floor(tem) == tem && tem !=0){
        print(i);
        break;
    }
}

 4.马路上的路灯

题目描述

 

城市E的马路上有很多路灯,每两个相邻路灯之间的间隔都是1公里。小赛是城市E的领导,为了使E城市更快更好的发展,需要在城市E的一段长度为M的主干道上的一些区域建地铁。这些区域要是建了地铁,就需要挪走相应的路灯。可以把长度为M的主干道看成一个数轴,一端在数轴0的位置,另一端在M的位置;数轴上的每个整数点都有一个路灯。要建地铁的这些区域可以用它们在数轴上的起始点和终止点表示,已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的路灯(包括区域端点处的两个路灯)移走。你能帮助小赛计算一下,将这些路灯移走后,马路上还有多少路灯?

 

输入

 

输入文件的第一行有两个整数M(1 <= M <= 10000)和 N(1 <= N <= 100),

M代表马路的长度,N代表区域的数目,M和N之间用一个空格隔开。

接下来的N行每行包含两个不同的整数,

用一个空格隔开,表示一个区域的起始点和终止点的坐标。

所有输入都为整数。且M和N的范围为上面提示范围。

 

样例输入

 

500 3
100 200
150 300
360 361

 

输出

 

输出文件包括一行,这一行只包含一个整数,

表示马路上剩余路灯的数目。

 

样例输出

 

298

var input = read_line();
var M = parseInt(input.split(" ")[0]);
var N = parseInt(input.split(" ")[1]);
var line,array=[];
while(line = read_line()){
  line = [parseInt(line.split(" ")[0]),  parseInt(line.split(" ")[1])];
  array.push(line);
}
count = 0;
for(var i = 0; i <= M; i++){
  var ok = true;
  for(var j = 0; j < array.length; j++){
    if(i <=array[j][1] && i >= array[j][0]){
      ok = false;
      break;
    }
  }
  if(ok){
    count++;
  }
}
print(count);

 5.日期倒计时

题目描述

 

在经济、科技日益发达的今天,人们对时间的把握越来越严格,对于一个一定影响力的公司的高管来说,他可能要将自己的行程提前安排到下个月。对于普通人来说,他也可能将几天之后的安排已经提前做好。

请设计一个程序计算出今天距离未来的某一天还剩多少天。

假设今天是2015年10月18日。

 

输入

 

输入一个日期格式为yyyy-MM-dd,

不考虑日期是否小于今天。

 

样例输入

 

2015-10-19

 

输出

 

输出一个数字表示今天

(2015年10月18日)

距离该日期还剩多少天。

 

样例输出

 

1

var input = read_line();
arr = input.split("-");
arr.forEach(function(item, index){
  arr[index] = parseInt(item);
});
var day = +new Date(arr[0], arr[1] - 1, arr[2]);
var today = +new Date(2015, 9, 18);
var long = (day - today)/(1000 * 60 * 60 * 24 );
print(long);

6.约会 

题目描述

 

Bob和Alice有个约会,一大早Bob就从点(0,0)出发,前往约会地点(a,b)。Bob没有一点方向感,因此他每次都随机的向上下左右四个方向走一步。简而言之,如果Bob当前在(x,y),那么下一步他有可能到达(x+1,y), (x-1,y), (x,y+1), (x,y-1)。很显然,当他到达目的地的时候,已经很晚了,Alice早已离去。第二天,Alice质问Bob为什么放她鸽子,Bob说他昨天花了s步到达了约会地点。Alice怀疑Bob是不是说谎了。你能否帮她验证一下?

 

输入

 

输入三个整数a,b,s

 

样例输入

 

5 5 11

 

输出

 

输出“Yes”,

如果Bob可能用s步到达(a,b);

否则输出“No”,

不需要输出引号。

 

样例输出

 

No

var input;
input = read_line();
input = input.split(" ");
input[0] = parseInt(input[0]);input[1] = parseInt(input[1]);input[2] = parseInt(input[2]);
var a = input[0], b = input[1], s = input[2];
if(a < 0)a = -a;
if(b<0)b = -b;
var x = s - (a + b);
if(x % 2 ==0 && x >= 0){
  print("Yes");
}else{
  print("No");
}

7.公交车乘客

题目描述

 

一个公交车经过n个站点,乘客从前门上车,从后门下车。

现在统计了在第i个站,下车人数a[i],以及上车人数b[i]。

问公交车运行时候车上最多有多少乘客

 

输入

 

第一行读入一个整数n(1<=n<=100),

表示有n个站点

接下来n行,每行两个数值,分别表示在第i个

站点下车人数和上车人数

 

样例输入

 

4

0 3

2 5

4 2

4 0

 

输出

 

每组输出车上最多的乘客数目

 

样例输出

 

6

var input;
input = read_line();
input = parseInt(input);
var line;
var most = 0, tem = 0;
for(var i = 1;  i<=input;i++){
  line = read_line();
  line = [ parseInt(line.split(" ")[0]), parseInt(line.split(" ")[1]) ];
  tem = tem - line[0] + line[1];
  if(most < tem){
    most = tem;
  }
}
print(most);

 

posted @ 2016-09-15 21:25  Carolina  阅读(4297)  评论(0编辑  收藏  举报