用陣列模擬實現約瑟夫環

2021-08-30 11:07:41 字數 555 閱讀 3703

約瑟夫問題:n個人圍成一圈,從第乙個人開始報數,數到m的人出圈;再由下乙個人開始報數,數到m的人出圈;…輸出依次出圈的人的編號。n,m由鍵盤輸入。

要求: 用陣列模擬實現 。

#include #include using namespace std;

const int maxn = 10000 + 7;

const int inf = 0x3f3f3f3f;

int arr[maxn];

int n, m;

void init() // 初始化編號

void del(int &index) // 引用,因為當 index == n 時,我們需要修改 index 的值

for(int i=index; i0)

cout << arr[index] << " ";

del(index);

n --; // 每次刪除後元素總個數減一

} cout << endl;

}int main()

return 0;

}

約瑟夫環(陣列實現)

有 m 個人,每次數 n 個殺死,問從第幾個開始數可以保證第乙個人活到最後。include define ll long long define inf 0x3f3f3f3f define endl n using namespace std const int n 1e6 100 int a n ...

用python實現約瑟夫環

先上 def circle number,k length number people for index in range number j 0 temp 0 res 0 while number 1 index j length if people index 0 temp 1 if temp ...

約瑟夫環的陣列實現

約瑟夫環的陣列實現約瑟夫 josephus 問題是由古羅馬的史學家約瑟夫提出的,他參加並記錄了公元66 70 年猶太人反抗羅馬的起義。約瑟夫作為乙個將軍,設法守住了裘達伯特城達47 天之久,在城市淪陷之後,他和40 名將士在附近的乙個洞穴中避難。在 將士們群情激奮並表示 要投降毋寧死。於是,約瑟夫建...