C 單向迴圈鍊錶儲存約瑟夫環

2021-10-01 02:24:36 字數 816 閱讀 5842

問題描述

約瑟夫環(約瑟夫問題)是乙個數學的應用問題:已知n個人(以編號1,2,3…n分別表示)按 順時針方向圍坐在一張圓桌周圍,每個人持有乙個密碼(正整數)。一開始任選乙個整數作為報數 上限值m,從第乙個人開始順時針自1報數,報到m時停止報數,報m的那個人出列,他的密碼作為 新的m值,從他在順時針方向上的下乙個人又開始重新從1報數,報到m的那個人出列又出列;依此 規律重複下去,直到圓桌周圍的人全部出列。

輸入格式

第一行是乙個整數,表示初始m值;

第二行乙個數n,表示圓桌上做的人數

第三行是n個整數,表示圓桌上座客持有的密碼

樣例輸入207

3 1 7 2 4 8 4

樣例輸出

6 1 4 7 2 3 5

**如下

#include

using

namespace std;

int a[

100]

;int m, n;

typedef

struct node

node,

*linklist;

void

creatlinklist

(linklist &l)

p->next = l;

}void

choose

(linklist &l)

//不能取到

else}}

intmain()

單向迴圈鍊錶 約瑟夫環

寫個約瑟夫環,檢驗一下自己的學習狀況.include define elemtype int typedef struct lnodesqlist void initlist sqlist l,elemtype n void round sqlist l,int m,int n int main v...

迴圈鍊錶(約瑟夫環)

約瑟夫環是乙個數學的應用問題 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。要通過輸入n,m,k三個正整數,來求出列的序列。這個問題採用的是典型的...

單向迴圈鍊錶 約瑟夫問題

班級活動中,乙個班n人圍成一圈玩遊戲時,從某乙個人開始數數,當數到m的那個人必須表演乙個節目,同時這個人退出遊戲。如何安排位置,能使自己避免表演節目呢?此類問題與約瑟夫問題是同一類問題。有名的約瑟夫問題 n個人圍成一圈,從第乙個開始報數,第m個將被殺掉,最後剩下乙個,其餘人都將被殺掉。例如n 5,m...