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

2022-03-03 09:08:06 字數 1222 閱讀 6467

題目鏈結

水題,暴力就行了

一、洗牌在生活中十分常見,現在需要寫乙個程式模擬洗牌的過程。 現在需要洗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次之後從上往下的序列。

#include 

#include

#include

using

namespace

std;

intmain()

}for(int i=1;i<=2*n;i++)

printf(

"%d%c

",a[i],i==2*n?'

\n':'');

}return0;

}

二、
小明同學把1到n這n個數字按照一定的順序放入了乙個佇列q中。現在他對佇列q執行了如下程式:

while(!q.empty())              //佇列不空,執行迴圈

做取出隊頭的值操作的時候,並不彈出當前隊頭。

小明同學發現,這段程式恰好按順序輸出了1,2,3,...,n。現在小明想讓你構造出原始的佇列,你能做到嗎?[注:原題樣例第三行5有錯,應該為3,以下已修正]

#include #include 

#include

using

namespace

std;

int data[100005

];int

main()

//printf("%d %d %d\n",pos,val,num);

}

for(int i=1;i<=n;i++)

printf(

"%d%c

",data[i],i==n?'

\n':'');

}return0;

}

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

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

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

include include include include include include include include include include include include include include accmulate include include setprecision...

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

include include include include include include include include include include include include include include accmulate include include setprecision...