報數 佇列模擬 C

2021-10-16 13:48:04 字數 903 閱讀 5818

有n個人圍成一圈,按順時針給他們編號為1-n。

緊接著,指定編號為m的人開始報數,報數按順時針進行。

報到d的人出列,下乙個人重新開始報數。按此規律,每次報到d的人都出列。

要求同學程式設計求出出列的順序。

輸入包括多組測試用例。

對於每組用例,第一行是乙個整數n,表示人數。n<100。

接下來n行是每個人的人名。人名為長度不超過20連續字串。

最後是以兩個以","分割的整數m,d。代表從m個人開始,每報d個數出列。

輸出所求的順序
sample input

8zhao

qian

sunli

zhou

wuzheng

wang

4,4sample output

zheng

sunwang

zhou

liwu

qian

zhao

寫的有點凌亂,有改進的再上傳
#include

#include

using

namespace std;

intmain()

cin>>m;

getchar()

; cin>>d;

for(

int i=

1;i<=m-

1;i++

)while

(q.empty()

!=1) p=q.

front()

; q.

pop();

cout

}

迴圈報數(佇列版)

有 nn n 個小朋友做遊戲,他們的編號分別是 1,2,3.n1,2,3.n1,2,3.n。他們按照編號從小到大依次順時針圍成乙個圓圈,從第乙個小朋友開始從 11 1 報數,依次按照順時針方向報數 加一 報 mm m 的人會離開隊伍,然後下乙個小朋友會繼續從 11 1 開始報數,直到只剩乙個小朋友為...

佇列實現報數遊戲

問題描述 有m個人,從1到m編號,按照編號順序圍成一圈。從第乙個人開始報數 從1報到n 凡報到n的人退出圈子。然後下乙個小朋友會繼續從 1 開始報數,直到只剩乙個人為止 問 最後留下的人的編號是幾號。具體方法 的注釋已經很詳細了。開乙個佇列不斷刪除,很簡單,稍微想一下或畫個草圖就ok了 includ...

佇列應用1 求解報數問題

1 問題描述 n個人從左向右編號1 n,然後從左向右報數 1,2,1,2,1,2.數到1的人出隊,數到2的人立即站到佇列的最右端 繼續報數,直到所有人出列 2 資料組織 使用順序佇列 3 設計演算法 1.全部入隊 2.出隊乙個,輸出編號 3.若佇列不為空,再出隊乙個元素,並將剛出列的元素進隊到隊尾 ...