2023年網易有道內推程式設計題

2021-07-29 02:37:27 字數 1210 閱讀 8376

第一題:

洗牌在生活中十分常見,現在需要寫乙個程式模擬洗牌的過程。現在需要洗2n張牌,從上到下依次是第1張,第2張,第3張一直到第2n張。首先,我們把這2n張牌分成兩堆,左手拿著第1張到第n張(上半堆),右手拿著第n+1張到第2n張(下半堆)。接著就開始洗牌的過程,先放下右手的最後一張牌,再放下左手的最後一張牌,接著放下右手的倒數第二張牌,再放下左手的倒數第二張牌,直到最後放下左手的第一張牌。接著把牌合併起來就可以了。例如有6張牌,最開始牌的序列是1,2,3,4,5,6。首先分成兩組,左手拿著1,2,3;右手拿著4,5,6。在洗牌過程中按順序放下了6,3,5,2,4,1。把這六張牌再次合成一組牌之後,我們按照從上往下的順序看這組牌,就變成了序列1,4,2,5,3,6。 現在給出乙個原始牌組,請輸出這副牌洗牌k次之後從上往下的序列。

//觀察可發現,執行k次後,數x的下標i(0<=i<2n)會變成i*pow(2,k)%(2n-1)。

//但是k取值範圍在1~100之間,使用pow(2,k)函式返回值會溢位。

//因此可以考慮用for迴圈執行k次

#include

#include

using

namespace

std;

int main()

for(int j = 0 ; j < k ; j ++)

}for(int i = 0 ; i < data.size()-1;i++)

cout

cout

<2*n-1]第二題:構造佇列

//從隊尾開始逆推,一步步還原原來的模樣。不是很難

#include

#include

using

namespace

std;

int main()

for(int i = 0 ; i < que.size()-1 ; i ++)

cout

<1]

0;}

2017 網易有道內推

第三題 乙個佇列,先pop乙個頭結點放在隊尾,再pop乙個頭結點輸出其值並丟棄。最後輸出的序列為1,2,3,n 問原始佇列元素排列是什麼 輸入 n n個數 輸出 乙個串 main.cpp youdao3 created by zjl on 16 8 27.include include using ...

2017 網易有道內推

題目在牛客網 關於資料解析 1.xml 資料結構只有乙個根節點,是可以巢狀的 2.jsonobjectwithdata options error 使用資料緩衝解析 3.writejsonobject tostream options error 使用流解析 4.xml 解析分為兩種 sax解析和d...

網易有道2017內推程式設計題

1.洗牌 洗牌在生活中十分常見,現在需要寫乙個程式模擬洗牌的過程。現在需要洗2n張牌,從上到下依次是第1張,第2張,第3張一直到第2n張。首先,我們把這2n張牌分成兩堆,左手拿著第1張到第n張 上半堆 右手拿著第n 1張到第2n張 下半堆 接著就開始洗牌的過程,先放下右手的最後一張牌,再放下左手的最...