《自殺遊戲》 約瑟夫環簡述

2021-10-06 14:20:47 字數 780 閱讀 2144

約瑟夫潛入到乙個組織中做臥底,但是最近組織對一批人起了疑心於是讓他們站成乙個環,每報到7的人將被處死只留下最後乙個,為了繼續臥底,約瑟夫要如何才能活下去呢?

//提示,開始前先看原理解析食用效果更好

#include

using

namespace std;

struct joseph

}n[1001];

//用結構體建立節點,next和front分別指向前後節點。

void

cut(joseph *num)

//自定義cut函式,用於刪除節點。

intmain()

n[0]

.front = n + tot -1;

n[0].next = n +1;

n[tot -1]

.front = n + tot -2;

n[tot -1]

.next = n;

n[0]

.number =1;

n[tot -1]

.number = tot;

//初始化整個約瑟夫環。

while

(tot >=1)

else

}return0;

}

這是乙個典型的約瑟夫環問題,在乙個環中不停迴圈7,刪除節點直到最後乙個。

原理如圖所示(畫的有點醜)

報數遊戲(約瑟夫環問題)

題目描述 有n個小朋友做遊戲,他們的編號分別是1,2,3 n。他們按照編號從小到大依次順時針圍成乙個圓圈,第乙個小朋友從1開始報數,依次按照順時針方向報數 報數的值加一 每個報m的人會離開隊伍,然後下乙個小朋友會繼續從1開始報數,直到只剩下乙個小朋友為止。求最後一位小朋友的編號。input 輸入兩個...

約瑟夫環 自殺環問題 簡單明瞭的迴圈鍊錶版

這是一道經典的鍊錶題 josephus有過的故事 39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓。於是決定了自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺。然後下乙個重新報數,直到所有人都自殺身亡為止。然而josephu...

約瑟夫環的實現《報數遊戲》

面試中經常會被問到報數遊戲。遂實現一下。問題描述 設有n個人圍坐一圈並按順時針方向從1到n編號,從第s個人開始進行1到m報數,報數到第m個人時,此人出圈,再從他的下乙個人重新開始1到m的報數,如此進行下去直到所有的人都出圈為止。現要列印出出圈次序。輸入 n 遊戲總人數 s 報數的起始編號 m 報數的...