版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
網(wǎng)易有道2023內(nèi)推編程題TOC\o"1-3"\h\u1[編程題]洗牌22[編程題]構(gòu)造隊列51[編程題]洗牌洗牌在生活中十分常見,現(xiàn)在需要寫一個程序模擬洗牌的過程?,F(xiàn)在需要洗2n張牌,從上到下依次是第1張,第2張,第3張一直到第2n張。首先,我們把這2n張牌分成兩堆,左手拿著第1張到第n張〔上半堆〕,右手拿著第n+1張到第2n張〔下半堆〕。接著就開始洗牌的過程,先放下右手的最后一張牌,再放下左手的最后一張牌,接著放下右手的倒數(shù)第二張牌,再放下左手的倒數(shù)第二張牌,直到最后放下左手的第一張牌。接著把牌合并起來就可以了。例如有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?,F(xiàn)在給出一個原始牌組,請輸出這副牌洗牌k次之后從上往下的序列。
輸入描述:第一行一個數(shù)T(T≤100),表示數(shù)據(jù)組數(shù)。對于每組數(shù)據(jù),第一行兩個數(shù)n,k(1≤n,k≤100),接下來一行有2n個數(shù)a1,a2,...,a2n(1≤ai≤1000000000)。表示原始牌組從上到下的序列。輸出描述:對于每組數(shù)據(jù),輸出一行,最終的序列。數(shù)字之間用空格隔開,不要在行末輸出余外的空格。輸入例子1:33112345632123456221111輸出例子1:1425361543261111#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>usingnamespacestd;constintN=1005;intn,k,a[N],b[N];intmain(){intt;scanf("%d",&t);while(t--){scanf("%d%d",&n,&k);n*=2;for(inti=1;i<=n;i++)scanf("%d",&a[i]);while(k--){for(inti=1;i<=n;i++)b[i]=a[i];for(inti=1,j=n/2+1;i<=n/2;i++,j++){a[2*i-1]=b[i];a[2*i]=b[j];}}for(inti=1;i<=n;i++){printf("%d%c",a[i],"\n"[i==n]);}}return0;}importjava.util.Scanner;
/**
*每次讀取一個數(shù)之后,算出他經(jīng)過k次洗牌后的位置,只用一個長度為2n數(shù)組用來輸出
*根據(jù)當(dāng)前數(shù)的位置,可以算出經(jīng)過一次洗牌后的位置
*如果當(dāng)前數(shù)小于等于n〔即在左手〕,那么他下次出現(xiàn)的位置是2*當(dāng)前位置-1
*如果當(dāng)前位置大于n〔即在右手〕,那么他下次出現(xiàn)的位置是2*〔當(dāng)前位置-n〕
*個人建議在線面試題的時候如果5分鐘內(nèi)沒想到好方法建議就使用暴力方法,
*畢竟測試用例不通過什么都沒用
*Createdbylizoon2023/8/20.
*/publicclassMain{
publicstaticvoidmain(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;
for(intj=
0;j<k;j++){
if(tmp<=n)tmp=
2*tmp-
1;
elsetmp=
2*(tmp-n);
}
res[tmp-
1]=sc.nextInt();
}
//輸出
if(res.length>
0)System.out.print(res[0]);
for(inti=
1;i<
2*n;i++){
System.out.print(""+res[i]);
}
System.out.println();
}
}}2[編程題]構(gòu)造隊列小明同學(xué)把1到n這n個數(shù)字按照一定的順序放入了一個隊列Q中。現(xiàn)在他對隊列Q執(zhí)行了如下程序:while(!Q.empty())//隊列不空,執(zhí)行循環(huán){intx=Q.front();//取出當(dāng)前隊頭的值xQ.pop();//彈出當(dāng)前隊頭Q.push(x);//把x放入隊尾x=Q.front();//取出這時候隊頭的值printf("%d\n",x);//輸出xQ.pop();//彈出這時候的隊頭}做取出隊頭的值操作的時候,并不彈出當(dāng)前隊頭。小明同學(xué)發(fā)現(xiàn),這段程序恰好按順序輸出了1,2,3,...,n?,F(xiàn)在小明想讓你構(gòu)造出原始的隊列,你能做到嗎?[注:原題樣例第三行5有錯,應(yīng)該為3,以下已修正]
輸入描述:第一行一個整數(shù)T〔T≤100〕表示數(shù)據(jù)組數(shù),每組數(shù)據(jù)輸入一個數(shù)n〔1≤n≤100000〕,輸入的所有n之和不超過200000。輸出描述:對于每組數(shù)據(jù),輸出一行,表示原始的隊列。數(shù)字之間用一個空格隔開,不要在行末輸出余外的空格.輸入例子1:412310輸出例子1:12121381621037495#include<iostream>#include<deque>usingnamespacestd;intmain(){intn,k;cin>>k;while(k>0){deque<int>q;k
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度旅游旺季臨時導(dǎo)游勞務(wù)合同范本4篇
- 2025年度個人果園綠色種植與農(nóng)產(chǎn)品溯源服務(wù)合同4篇
- 2025年度木工產(chǎn)品包裝設(shè)計與印刷合同3篇
- 二零二五年度室內(nèi)木門翻新與維修服務(wù)合同范本4篇
- 2025版煤炭行業(yè)人力資源培訓(xùn)與合作合同4篇
- 2025年度美發(fā)行業(yè)技師技能認(rèn)證與培訓(xùn)合同4篇
- 二零二五年度木飾面原材料質(zhì)量控制與認(rèn)證合同3篇
- 2025年臨時企業(yè)靈活勞務(wù)外包協(xié)議
- 2025年家族遺產(chǎn)繼承公約規(guī)劃協(xié)議
- 2025年合同追償協(xié)議
- 醫(yī)學(xué)脂質(zhì)的構(gòu)成功能及分析專題課件
- 高技能人才培養(yǎng)的策略創(chuàng)新與實踐路徑
- 人教版(2024新版)七年級上冊英語期中+期末學(xué)業(yè)質(zhì)量測試卷 2套(含答案)
- 2024年湖北省中考數(shù)學(xué)試卷(含答案)
- 油煙機清洗安全合同協(xié)議書
- 2024年云南省中考數(shù)學(xué)試題(原卷版)
- 污水土地處理系統(tǒng)中雙酚A和雌激素的去除及微生物研究
- 氣胸病人的護(hù)理幻燈片
- 《地下建筑結(jié)構(gòu)》第二版(朱合華)中文(2)課件
- JB T 7946.1-2017鑄造鋁合金金相
- 包裝過程質(zhì)量控制
評論
0/150
提交評論