約瑟夫(joseph)問題:
編號為1,2,3,……n的n個人按順時針方向圍坐一圈,每個人持有乙個密碼(正整數),一開始任選乙個整數作為報數上限m,從第乙個人開始按順時針方向從自1開始報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m的值,從他的順時針方向上的下乙個人開始重新從1報數,從此下去,直到所有人全部出列為止,設計乙個程式求出出列/順序。
#include
#include
typedef
struct node
lnode,
*linklist;
void
creatlist
(linklist &l,
int n)
;//建立乙個迴圈鍊錶,無頭結點,n為人數
void
joseph
(linklist &l,
int m)
;//m為第一次報數上限
intmain()
void
creatlist
(linklist &l,
int n)
r->next=l;
//迴圈鍊錶
l=r;
//用尾結點表示鍊錶-->因為是從第乙個人開始計算
}void
joseph
(linklist &l,
int m)
printf
("%d\n"
,l->code)
;free
(l);
}
迴圈鍊錶問題
首先是約瑟夫問題 來自魚c工作室 typedef struct node node node create int n s next head next free head return s next int main printf d n p data return 0 高階版的問題是這樣的 編號...
約瑟夫迴圈問題uva305 Joseph
閒的無聊去找了道資料結構專欄的題目。沒想到是道數學題。模擬根本出不來。正好補了一下約瑟迴圈問題,有公式 f i f i 1 m i f 1 0 f i 代表的是當人數為i的時候,活下來的人是第幾個人 include include includeusing namespace std define ...
迴圈單鏈表 Joseph約瑟夫環問題
package com.linkedlist author qw date 2020 8 11 22 02 public class josephcircle 迴圈單鏈表 class circlesinglelinkedlist child cur null 輔助指標,幫助構建迴圈鍊錶 for in...