mycoding 約瑟夫環 c

2021-10-04 08:59:18 字數 574 閱讀 6032

這裡只介紹最直觀的做法:我們把沒有出列的人依次放進乙個容器(看作,實際上並沒有把這個容器直接寫出來),如果容器裡有m個元素,就讓那個元素出列並清空容器,然後從其後的元素開始重新進容器。

**:

#include

using

namespace std;

const

int max =

1001

;bool out[max]

;//判斷是否出列

//int arr[max];

intmain()

int p =1;

int round =0;

int call =1;

int con =0;

while

(round < n -1)

}//搜尋下乙個元素

p++;if

(p > n)

}for

(int i =

1; i < n +

1; i++)}

return0;

}

需要注意if裡面的等號一律用==(我除錯了好幾遍才過的)。

約瑟夫環 C 實現

include using namespace std void main int rem n 桌上剩餘人數 int pos 0 當前開始計數人的位置 int count 0 當前計數大小 一直迴圈到桌上只剩乙個人 while rem 1 if a pos true pos 輸出桌上剩餘的最後乙個人...

C 之約瑟夫環

問題原型 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報數,直到所有人都自殺身亡為止。然而josephus 和...

C 之約瑟夫環

0,1,2,3,n 1這n個數排成乙個圈,從數字0開始,每次在圓圈裡面剔除第m個數字。求出這個圓圈最後乙個數字。乙個是使用鍊錶來模擬這個過程 使用公式推導 鍊錶模擬 int lastremaining solution int n,int m else return peoples.begin 公式...