約瑟夫問題: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 名將士在附近的乙個洞穴中避難。在 將士們群情激奮並表示 要投降毋寧死。於是,約瑟夫建...