【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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM