熱心網友
約瑟夫環(問題描述)約瑟夫問題的一種描述是:編號為1,2,......n,的n個人按順時針方向圍坐一圈,每個人持有一個密碼(正整數)。一開始任意選一個正整數作為報數的上限值m,從第一個人開始按順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向下一個人開始從1報數,如此下去,直至所有人全部出列為止.比如游戲要求如下:(基本要求)利用單向循環鏈表存儲結構模擬此過程,按照出列順序印出個人的編號。(測試數據)m的初值為20;n=7,7個人的密碼依次為:3,1,7,2,4,8,4,首先m為6(正確的出列順序應為6,1,4,7,2,3,5)。
熱心網友
有n個人圍成一圈,順序排號。從第一個人開始報數(從1到cyle報數),凡報到cyle的人退出圈子,問最后留下的是原來第幾號的那位。代碼:#define nmax 50#define cyle 3main(){int i,k,m,n,num[nmax],*p;printf("please input the total of numbers:");scanf("%d",&n);p=num;for(i=0;i 約瑟夫環的問題有許多版本,最原始也最簡單的一個版本是: n個人從1到n編號,首位相接排成一圈(n號后面的人是1號)。從第一個人開始報數,報到2的人馬上退出游戲,然后下一個人重新從1開始報數,如此反復,直到只剩一個人為止。 這個版本是報到2退出游戲,較為復雜的版本可以是報到其他數退出游戲。再復雜一點的就如上面一位所說的那樣報到幾退出游戲是不確定的。還有的版本報數的方向也有變化,譬如可以正向,也可反向。 哦熱心網友
熱心網友