資源描述:
《網(wǎng)易有道2017內(nèi)推編程題.docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、網(wǎng)易有道2017內(nèi)推編程題1[編程題]洗牌22[編程題]構(gòu)造隊(duì)列51[編程題]洗牌洗牌在生活中十分常見(jiàn),現(xiàn)在需要寫(xiě)一個(gè)程序模擬洗牌的過(guò)程?,F(xiàn)在需要洗2n張牌,從上到下依次是第1張,第2張,第3張一直到第2n張。首先,我們把這2n張牌分成兩堆,左手拿著第1張到第n張(上半堆),右手拿著第n+1張到第2n張(下半堆)。接著就開(kāi)始洗牌的過(guò)程,先放下右手的最后一張牌,再放下左手的最后一張牌,接著放下右手的倒數(shù)第二張牌,再放下左手的倒數(shù)第二張牌,直到最后放下左手的第一張牌。接著把牌合并起來(lái)就可以了。例如有6張牌,最開(kāi)始牌的序列是1,2,3
2、,4,5,6。首先分成兩組,左手拿著1,2,3;右手拿著4,5,6。在洗牌過(guò)程中按順序放下了6,3,5,2,4,1。把這六張牌再次合成一組牌之后,我們按照從上往下的順序看這組牌,就變成了序列1,4,2,5,3,6。現(xiàn)在給出一個(gè)原始牌組,請(qǐng)輸出這副牌洗牌k次之后從上往下的序列。?輸入描述:第一行一個(gè)數(shù)T(T≤100),表示數(shù)據(jù)組數(shù)。對(duì)于每組數(shù)據(jù),第一行兩個(gè)數(shù)n,k(1≤n,k≤100),接下來(lái)一行有2n個(gè)數(shù)a1,a2,...,a2n(1≤ai≤)。表示原始牌組從上到下的序列。輸出描述:對(duì)于每組數(shù)據(jù),輸出一行,最終的序列。數(shù)字之間用
3、空格隔開(kāi),不要在行末輸出多余的空格。輸入例子1:33112345632123456221111輸出例子1:14253615432611111.#include2.#include3.#include4.#include5.usingnamespacestd;6.constintN=1005;7.intn,k,a[N],b[N];8.9.intmain(){10.intt;scanf("%d",&t);11.while(t--){12.scanf("%
4、d%d",&n,&k);n*=2;13.for(inti=1;i<=n;i++)14.scanf("%d",&a[i]);15.while(k--){16.for(inti=1;i<=n;i++)17.b[i]=a[i];18.for(inti=1,j=n/2+1;i<=n/2;i++,j++){1.a[2*i-1]=b[i];2.a[2*i]=b[j];3.}4.}5.for(inti=1;i<=n;i++){6.printf("%d%c",a[i],""[i==n]);7.}8.}9.return0;10.}import
5、java.util.Scanner;??/**?*每次讀取一個(gè)數(shù)之后,算出他經(jīng)過(guò)k次洗牌后的位置,只用一個(gè)長(zhǎng)度為2n數(shù)組用來(lái)輸出?*根據(jù)當(dāng)前數(shù)的位置,可以算出經(jīng)過(guò)一次洗牌后的位置?*如果當(dāng)前數(shù)小于等于n(即在左手),則他下次出現(xiàn)的位置是2*當(dāng)前位置-1?*如果當(dāng)前位置大于n(即在右手),則他下次出現(xiàn)的位置是2*(當(dāng)前位置-n)?*個(gè)人建議在線面試題的時(shí)候如果5分鐘內(nèi)沒(méi)想到好方法建議就使用暴力方法,?*畢竟測(cè)試用例不通過(guò)什么都沒(méi)用?*Createdbylizoon2016/8/20.?*/publicclassMain{????p
6、ublicstaticvoidmain(String[]args){??????Scannersc=?newScanner(System.in);??????intgroups=sc.nextInt();??????while(groups-->?0){????????intn=sc.nextInt();????????intk=sc.nextInt();????????int[]res=?newint[2*n];????????for(inti=0;i<2*n;i++){??????????inttmp=i+?1;??????
7、????for(intj=?0;j?0)System.out.print(res[0]);????????for(inti=?1;i2*n;i++){??????????System.out.
8、print(""+res[i]);????????}????????System.out.println();??????}????}}2[編程題]構(gòu)造隊(duì)列小明同學(xué)把1到n這n個(gè)數(shù)字按照一定的順序放入了一個(gè)隊(duì)列Q中?,F(xiàn)在他對(duì)隊(duì)列Q執(zhí)行了如下程序:while(!Q