樓主網申了網易的前端開發崗,兩週後發來了網易的筆試邀請並附上了連接。前端
整個筆試分爲三部分,選擇,編程和解答。樓主底子不好,此次筆試也只是試水。在發現大部分筆試題不會以後,沒有解答完就提交了。(捂臉)編程
下面是筆試部分記錄:測試
編程部分spa
一、小Q獲得一個神奇的數列:1,12,123,........12345678910,1234567891011...code
而且小Q對於可否被3整除這個性質很感興趣。小Q如今但願你能幫助他計算一下從數列的第1個到第r個(包含端點)。blog
輸入描述:three
輸入包括兩個整數l 和 r(1 <=l <= r <= 1e9),表示要求解的區間兩端。開發
輸出描述:字符串
輸出一個整數,表示區間能被3整除的數字個數。it
舉例:輸入:2 5 輸出: 3;
表示12,123,1234,12345 中能被3 整除的數有3個。
二、牛牛之前在老師那裏獲得了一個正整數數對(x,y,),牛牛忘記他們具體是多少了。可是牛牛記得老師告訴過他x和y均不大於n,而且x除以y的餘數大於等於k,牛牛但願你能幫他計算一共有多少個可能的數對。
輸入描述:輸入包括兩個整數,n,k(1 <= n <= 10^5,0 <= k <= n -1)。
輸出描述:對於每一個測試用例,輸出一個正整數表示可能的數對數量。
舉例:輸入:5 2 ;輸出: 7。 知足條件的數對有:(2,3) ;知足條件的數對有(2,3)(2,4)(2,5)(3,4)(3,5)(4,5)(5,3);
三、牛牛去犇犇老師家補課,出門的時候面向北方,可是他如今迷路了,雖然他手裏有一張地圖,可是他須要知道本身面向的是哪一個方向。請你幫助他。
輸入描述:
每一個輸入包含一個測試用例。
每一個輸入包含一個測試用例,每一個測試用例的第一行包含一個正整數,表示轉的方向的次數N(N<=1000)。
接下來的一行包含一個長度爲N的字符串,由L和R組成,L表示向左轉,R表示向右轉。
輸出描述:
輸出牛牛最後的面向的方向,N表示北,S表示南,E表示東,W表示西。
小Q數列問題: ------------------------------ 輸入:2 5 輸出:3 */ console.log("【小Q數列結果】一共有" + three(2, 5) + "個"); // 檢查結果 function three(num1, num2) { let tmpFirst = ""; // 開端數字 let tmpSecond = ""; // 結束數字 let threeNumber = 0; // 整除3的數量 for (let index = 1; index <= num1; index++) { tmpFirst += index.toString(); } console.log("小Q數列-- " + "開端數字是" + tmpFirst); // 獲得開端數字 for (let index = 1; index <= num2; index++) { tmpSecond += index.toString(); if (tmpSecond >= tmpFirst && tmpSecond % 3 == 0) { // 取得區間數字,並整除3 threeNumber += 1; console.log("小Q數列-- " + "數字 " + tmpSecond + " 能夠整除3"); } } return threeNumber; } /* 牛牛數對問題: ------------------------------ 輸入:5 2 輸出:7 */ console.log("【牛牛數對結果】一共有" + pair(5, 2) + "個"); // 檢查結果 function direction(n, k) { let pairNumber = 0; // 數對數量 for (let indexX = 1; indexX <= n; indexX++) { // indexX是數對左邊數字 for (let indexY = 1; indexY <= n; indexY++) { // indexY是數對右邊數字 if (indexX % indexY >= k) { // 計算餘數是否等於k pairNumber += 1; console.log("牛牛數對-- " + "數對 (" + indexX + "," + indexY + ") 符合"); } } } return pairNumber; } /* 牛牛轉向問題: ------------------------------ 輸入:3 LRR 輸出:E */ console.log("【牛牛轉向結果】方向是" + direction(3, "LRR")); // 檢查結果 function direction(number, action) { let leftNum = 0; // 左轉次數 let rightNum = 0; // 右轉次數 for (let index = 0; index < action.length; index++) { action[index] == "L" ? leftNum += 1 : rightNum += 1; //取得左轉和右轉幾回 } console.log(leftNum,rightNum); let result = Math.abs(leftNum * (-1) + rightNum * 1); // 最終轉的次數(左轉一次和右轉一次會抵消) let directionValue = 1 + result % 4; //數字4是一圈,因此取餘數就是最終方向;初始方向是北,因此加1 switch (directionValue) { case 1: return "N"; // 1表明北 case 2: return "E"; // 2表明東 case 3: return "S"; // 3表明南 case 4: return "W"; // 4表明西 } }