思想:將資料儲存到乙個鍊錶中,此鍊錶首尾相連形成乙個環,刪除指定的數即是刪除相應的節點,直到鍊錶為空為止。
**如下:
先寫乙個節點類:
class node
}再寫乙個circle類,此類有兩個方法,add方法形成乙個首尾相連的鍊錶,儲存資料;用delete方法來刪除相應的節點,即刪除相應的數
class circle
node tmp = head;
while(tmp.next!=null&&n>1)
tmp.next = newnode;
n--;
if(n==1)
}public void delete(int m)
else
prenode.next = curnode.next;
head = curnode.next;
system.out.println(curnode.data);}}
}最後test類完成測試
public class test
while(a>0)}}
執行結果:101
3629
5748
迴圈鍊錶解決約瑟夫環問題
題目要求的約瑟夫環操作 編號是1,2,n的n個人按照順時針方向圍坐一圈,每個人只有乙個密碼 正整數 一開始任選乙個正整數作為報數上限值m,從第乙個仍開始順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下乙個人開始重新從1報數,如此下去,直到所有人...
使用鍊錶解決約瑟夫環問題
1139 約瑟夫環問題 時間限制 500ms 記憶體限制 65536k 提交次數 157 通過次數 79 題型 程式設計題 語言 g gcc description 約瑟夫 josephus 環是這樣的 假設有n個小孩圍坐成乙個圓圈,並從1開始依次給每個小孩編上號碼。老師指定從第s位小孩起從1開始報...
迴圈鍊錶解決約瑟夫環問題
問題描述 假設有n個小孩按照序號1,2,n圍坐成一圈,從第乙個小孩開始報數,每次報到n的人退出,接著從下乙個人重新開始從1開始報數,下一次再報到n的人退出,求最後乙個留下的人 小孩的個數n,和報數的n由鍵盤輸入 輸出留下人的序號 乙個迴圈鍊錶都寫得除出了很多問題,改了半天才出來 include in...