約瑟夫環問題

2022-08-23 00:42:11 字數 1760 閱讀 1510

3.約瑟夫環問題

1 #include2 #include3

#define maxsize 30

4 typedef int

datatype;

56 typedef struct

node

7 seqlist,*pseqlist;

11//

typedef seqlist* pseqlist;

1213

14pseqlist init_seqlist( );

15pseqlist create_seqlist(pseqlist pl);

16int josephus_seqlist (pseqlist josephus_seq, int s, int

m);17

int delete_seqlist(pseqlist pl,int

i);18

print_seqlist(pseqlist pl);

1920

main()

217172}

737475}

7677

7879 pseqlist init_seqlist(void

)80

8788

pseqlist create_seqlist(pseqlist pl)

8999

return

(pl);

100101

102}

103104

int josephus_seqlist (pseqlist josephus_seq, int s, int

m)105

112 s1=s-1; /*

data陣列中下標從0開始

*/113 printf("

輸出約瑟夫序列:");

114115

for(i=josephus_seq->length; i>0; i--)

116

122return(1);//

123}

124125

126int delete_seqlist(pseqlist pl,int

i)127

134if(i<1 || i> pl -> length) /*

檢查刪除位置的合法性

*/135

139//*x= pl ->data[i-1];

140for(j=i;j< pl -> length; j++)

141 pl ->data[j-1]=pl ->data[j]; //

向上移動

142 pl-> length --;

143return (1); /*

刪除成功

*/144

}145

146147

print_seqlist(pseqlist pl)

148155

if(pl->length==0

)156

160161 printf("

順序表的長度為%d\n

",pl->length);

162 printf("

順序表的各元素值為:");

163for(i=0;i<=pl->length-1;i++)

164 printf("

%4d",pl->data[i]);

165return1;

166167 }

約瑟夫問題 約瑟夫環

約瑟夫 問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死...

約瑟夫問題 約瑟夫環

約瑟夫問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也...

約瑟夫環問題

約瑟夫環問題 問題描述 編號是1,2,n的n個人按照順時針方向圍坐一圈,每個人持有乙個密碼 正整數 一開始任選乙個正整數作為報數上限值m,從第乙個人開始順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下乙個人開始重新從1報數,如此下去,直到所有人...