約瑟夫問題求解

2021-07-06 06:05:40 字數 771 閱讀 5106

終於又到了大名鼎鼎的約瑟夫問題了。

約瑟夫問題也算是近代比較知名的乙個演算法問題了,有著成熟的演算法,其中有著強行模擬,還存在著一些神奇的數學方法,哈哈。今天我又來了強行模擬。

啊,啊,啊。

瞎。 下面是問題的描述:

題目描述 description

乙個旅行社要從n名旅客中選出一名幸運旅客,為他提供免費環球旅行服務。方法是,大家站成乙個圈,然後選定m,從第乙個人開始報數1,2,3………,報到m的人退出圈外,然後從下乙個人開始重新從1報數,重複這個過程,直到只剩下乙個人時,此人就是幸運之星。

輸入描述 input description

螢幕輸入n m

輸出描述 output description

螢幕輸出 列印退出圈外的人的序號

(幸運者號碼)

樣例輸入 sample input

6 4樣例輸出 sample output

4 2 1 3 6

下面附上完整**:

qaq。

#include

using

namespace

std;

int main()

love--;

if(love==0)

love=n;

cout

<" ";

a[love]=0;

}cout

if(a[i]==1)

}

約瑟夫問題的求解!

已知有n 只猴子 以編號1,2,3,n 分別表示 圍坐一圈。從第一只猴子開始,按順序從1開始報數,數到 m 的那只猴子出列 接著再從從1 開始報數,報數到 m的那只猴子又出列 依此規律重複下,直到只剩乙隻猴子為止。輸入n和m,輸出最後剩下的猴子?此問題,即報數問題,也是約瑟夫問題!很多人一開始想到是...

約瑟夫環問題求解

約瑟夫問題如下 n個人圍成圈,依次編號為1,2,n,現在從1號開始依次報數,當報到m時,報m的人退出,下乙個人重新從1報起,迴圈下去,問最後剩下那個人的編號是多少?input amount 佇列人數 m 數到m時退出乙個人 output 最後乙個退出的人的下標 思路 用布林陣列做 我們可以把這amo...

約瑟夫問題求解 C

設有n 個人站成一圈,每個人持有乙個密碼 正整數 現從第t 個人開始,按順時針方向 1,2,3,4,迴圈報數,數到m1 第t 個人所持密碼 的人出列,然後從出列者的下乙個人重新開始報數,數到m2 剛出列者所持密碼 的人又出列,如此重複進行,直到n 個人都出列為止。問題是 對於任意給定的n 個人的原始...