順序表應用 求解Josephus問題(java)

2021-08-19 14:08:07 字數 646 閱讀 9203

josephus問題:古代某法官要判決number個犯人的死刑,他有一條荒唐的法律:讓囚犯站成乙個圓圈,從第start個人開始數起,每數到第distance個犯人,就拉出去處決,然後再次數distance個人,再次進行處決,,,,直到最後只剩乙個人,這個人會被赦免,當number = 5,start = 0,distance = 3時,過程如下:

**如下:

package list;

public class josephus

int i = start;

while (list.size() > 1)

system.out.println("被赦免者是:" + list.get(0).tostring());

} public static void main(string args)

}

顯示結果如下:

注意上述**,要和匯入seqlist類(順序表)才可以執行

Josephus環問題 順序表求解

演算法描述 建立乙個具有number個元素的順序表物件list。從第start個元素開始,依次計數,每數到distance,就將該元素刪除。重複計數並刪除元素,直到剩下乙個元素。public class seqlist josephus system.out.println 被赦免者是 list.g...

鍊錶應用 Josephus問題

據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被人抓到,於是決定了乙個自殺方式 41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報數,直到所有人...

迴圈鍊錶應用 Josephus

include using namespace std typedef int elemtype struct nodetype void josephus int n,int m,int k p data n p next head p head while p data p next data ...