版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
網(wǎng)易有道2023內推編程題TOC\o"1-3"\h\u1[編程題]洗牌22[編程題]構造隊列51[編程題]洗牌洗牌在生活中十分常見,現(xiàn)在需要寫一個程序模擬洗牌的過程。現(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ù)當前數(shù)的位置,可以算出經(jīng)過一次洗牌后的位置
*如果當前數(shù)小于等于n〔即在左手〕,那么他下次出現(xiàn)的位置是2*當前位置-1
*如果當前位置大于n〔即在右手〕,那么他下次出現(xiàn)的位置是2*〔當前位置-n〕
*個人建議在線面試題的時候如果5分鐘內沒想到好方法建議就使用暴力方法,
*畢竟測試用例不通過什么都沒用
*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[編程題]構造隊列小明同學把1到n這n個數(shù)字按照一定的順序放入了一個隊列Q中?,F(xiàn)在他對隊列Q執(zhí)行了如下程序:while(!Q.empty())//隊列不空,執(zhí)行循環(huán){intx=Q.front();//取出當前隊頭的值xQ.pop();//彈出當前隊頭Q.push(x);//把x放入隊尾x=Q.front();//取出這時候隊頭的值printf("%d\n",x);//輸出xQ.pop();//彈出這時候的隊頭}做取出隊頭的值操作的時候,并不彈出當前隊頭。小明同學發(fā)現(xiàn),這段程序恰好按順序輸出了1,2,3,...,n?,F(xiàn)在小明想讓你構造出原始的隊列,你能做到嗎?[注:原題樣例第三行5有錯,應該為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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公園林綠化合同范本
- 2025年度辦事處設計及智能化辦公系統(tǒng)合同
- 兒童玩具商標轉讓居間合同
- 玻璃制品廠出租居間合同
- 第三人房產(chǎn)抵押擔保合同
- 網(wǎng)絡故障排除與維護手冊
- 工程中介居間合同
- 三農產(chǎn)品安全檢測技術指南
- 大數(shù)據(jù)應用與服務平臺建設項目合同
- 供應商管理與采購合同談判規(guī)定
- 四川省自貢市2024-2025學年上學期八年級英語期末試題(含答案無聽力音頻及原文)
- 2025-2030年中國汽車防滑鏈行業(yè)競爭格局展望及投資策略分析報告新版
- 2025年上海用人單位勞動合同(4篇)
- 二年級上冊口算題3000道-打印版讓孩子口算無憂
- 新疆烏魯木齊地區(qū)2025年高三年級第一次質量監(jiān)測生物學試卷(含答案)
- 衛(wèi)生服務個人基本信息表
- 高中英語北師大版必修第一冊全冊單詞表(按單元編排)
- 新教科版科學小學四年級下冊全冊教案
- 苗圃建設項目施工組織設計范本
- 2024中考語文試卷及答案長沙
- 廣東省湛江市廉江市2023-2024學年八年級上學期期末考試數(shù)學試卷(含答案)
評論
0/150
提交評論