學會鍊錶的練手題:
題目描述
圓桌上圍坐著2n個人。其中n個人是好人,另外n個人是壞人。如果從第乙個人開始數數,數到第m個人,則立即處死該人;然後從被處死的人之後開始數數,再將數到的第m個人處死……依此方法不斷處死圍坐在圓桌上的人。試問預先應如何安排這些好人與壞人的座位,能使得在處死n個人之後,圓桌上圍坐的剩餘的n個人全是好人。
思路
迴圈雙鏈表來模擬圓桌順時針和逆時針
題解
#includeusing namespace std;
struct linknode;
void insertnode(linknode *p)
int main()
rear->next=head;
head->pre=rear;
// 在head後插入乙個'b',從這裡開始往後數m個,在最後乙個後面插入'b',總共執行n次插入
insertnode(head);
p=head->next;
for(int i=1;inext;
insertnode(p);
p=p->next;
}for(int j=1;jnext;
int t=0;
for(int i=0;i<2*n;++i)
{coutp=p->pre;
++t;
if(t==50) {cout《沒有釋放記憶體,請勿效仿!
圓桌問題 a
時間限制 1 sec 記憶體限制 128 mb 提交狀態 題目描述 圓桌上圍坐著2n個人其中n個人是好人,另外n個人是壞人。如果從第乙個人開始數數數到第m個人,則立即處死該人,然後從被處死的人之後開始數數,再將數到的第m個人處死 依此方法不斷處死圍坐在圓桌上的人。試問預先應如何安排這些好人與壞人的座...
C 程式設計 圓桌問題
問題描述 圓桌上圍坐著2n個人。其中n個人是好人,另外n個人是壞人。如果從第m m 2n 個人開始數數,數到第k個人,則立即處死該人 然後從被處死的人之後重新開始數數,再將數到的第k個人處死 依此方法不斷處死圍坐在圓桌上的人。試問預先應如何安排這些好人與壞人的座位,能使得在處死n個人之後,圓桌上圍坐...
約瑟夫環問題 圓桌報數問題
約瑟夫環問題 一圈共有n個人,開始報數,報到m的人自殺,然後重新開始報數,問最後自殺的人是誰?如圖 內環表示人排列的環,外環表示自殺順序 上面n 41,m 3。最普通辦法就是模擬整個過程 建乙個bool陣列,true表示此人還活著,false表示已經自殺。可以模擬整個過程 cpp view plai...