約瑟夫環1

2022-08-21 09:54:14 字數 943 閱讀 3317

有n個小孩圍成一圈,給他們從1開始依次編號,現指定從第w個開始報數,報到第s個時,該小孩出列,然後從下乙個小孩開始報數,仍是報到s個出列,如此重複下去,直到所有的小孩都出列(總人數不足s個時將迴圈報數),求小孩出列的順序。

input

第一行輸入小孩的人數n(n<=64)

接下來每行輸入乙個小孩的名字(人名不超過15個字元)

最後一行輸入w,s (w < n),用逗號","間隔

output

按人名輸出小孩按順序出列的順序,每行輸出乙個人名

sample input

5

xiaoming

xiaohua

xiaowang

zhangsan

lisi

2,3

sample output
zhangsan

xiaohua

xiaoming

xiaowang

lisi

約瑟夫環問題:將名字用string陣列存好,index陣列代表下標,根據w和s計算出要踢出去的下標index[w],之後重新編排下標。

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

index[i] = index[i + 1];

(g++通過,c++ compiling error)

#include

#include

#include

using namespace std;

int n, w, s;

string name[70];

int index[70];

int main()

scanf("%d,%d", &w, &s);

w = (w + n - 1) % n;

do while (--n);

return 0;

}

約瑟夫環的問題1

n個人做成一圈,順時針由1開始給他們編號,然後由第乙個人進行報數,數到m的人出局,接著下乙個人又從1開始報數,只剩最後乙個人的時候求這個人的編號 特例 當m 2的時候 n 2 k 如果只有2個人,顯然剩餘的為1號如果有4個人,第一輪除掉2,4,剩下1,3,3死,留下1 如果是8個人,先除去2,4,6...

約瑟夫問題 約瑟夫環

約瑟夫 問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死...

約瑟夫問題 約瑟夫環

約瑟夫問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也...