資料結構 約瑟夫問題的C 實現

2021-08-28 21:34:27 字數 1086 閱讀 2118

編號為1,2······,n的n個人按順時針方向圍坐一圈,每人持有乙個密碼。一開始任選乙個正整數作為報數上限值m,從第乙個人開始順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他的順時針方向上的下乙個人開始重新從1報數,如此下去,直到所有人全部出列為止。試設計乙個程式求出出列順序。

測試資料: m的初值為20,n=7,七個人的密碼依次為3,1,7,2,4,8,4。則首先m值為6 ,正確的出列順序應該為6,1,4,7,2,3,5。

}temp2->next = head; //實現鍊錶的迴圈

}joseph::~joseph()

bool joseph::game()

cout << "出列人編號: " << temp1->number << endl;

temp = temp1; //temp指向將要出列的人

a = temp->password; //記錄密碼,用來刪除下乙個人

temp2->next = temp1->next;

temp1 = temp->next;

delete temp;

}cout << endl;

head = null; //最後乙個人出列後,將頭指標設為null(一定不要忘記)

return true; }

int main()

joseph test(n, m, first_m);

test.game();

return 0;

}

資料結構 C語言 約瑟夫問題

一 問題描述 約瑟夫問題 乙個旅行社要從n個旅客中選出一名旅客,為他提供免費的環球旅行服務。旅行社安排這些旅客圍成乙個圓圈,從帽子中取出一張紙條,用上面寫的正整數m作為報數值。遊戲進行時,從第s個人開始按順時針方向自1開始順序報數,報到m時停止報數,報m的人被淘汰出列,然後從他順時針方向上的下乙個人...

資料結構 約瑟夫問題

約瑟夫問題 上課結束,大家聽說第一周沒有程式設計題目,立刻就被鄙視了,為了糾正這個錯誤,咱們本週就來做點簡單題目。本題要求用迴圈鍊錶實現 約瑟夫問題是乙個經典的問題。已知n個人 不妨分別以編號1,2,3,n 代表 圍坐在一張圓桌周圍,從編號為 k 的人開始,從1開始順時針報數1,2,3,順時針數到m...

資料結構 約瑟夫問題

約瑟夫問題是乙個經典的問題。已知n個人 不妨分別以編號1,2,3,n 代表 圍坐在一張圓桌周圍,從編號為k 的人開始,從1開始順時針報數1,2,3,順時針數到m 的那個人,出列並輸出。然後從出列的下乙個人開始,從1開始繼續順時針報數,數到m的那個人,出列並輸出,依此重複下去,直到圓桌周圍的人全部出列...