資料結構上機題
每個人有自己的編號和乙個數字(用於決定下乙個淘汰者),先輸入第乙個的序號;
例如:共有10人圍成環,每個人標號從1到10,每人手裡拿著乙個數,假定編號5的人手中拿著數字3
假定輸入的第乙個淘汰序號為5,則編號為5的人淘汰,此時獲取編號為5的人手中的數字,即3,則從淘汰者(5)的下乙個位置開始數3個數,淘汰次位置的人,即淘汰編號為8的人,繼續獲取編號為8的人手中的數字,用於決定下乙個淘汰者,直至所有人都被淘汰
**如下
#include
using namespace std;
struct node ;
class linklist;
linklist::linklist()
void linklist::creatlist(int n)
}void linklist::display()
cout << 「\n」;
}void linklist::taotai(int j)
temp = head;
while(t != j-1)
}a++;
t = 0; // 計數器置零
b = temp->next->data; // 取出密碼
cout<<「第」s = temp->next; // 刪除出列人的節點
temp->next = s->next;
delete s;
if(!temp->next) // 若第乙個出列的人是最後乙個座位的,則指標回到第一人
while(temp) // 當人沒有全部出列時,一直執行
}a++;
t = 0; // 每齣列乙個人,計數元置零
b = temp->next->data; // 取出出列人的密碼
cout<<「第」k = temp->next;
temp->next = k->next;
delete k; // 刪除出列人的節點
if(!temp->next) // 若第乙個出列的人是最後乙個座位的,則指標回到第一人}}
int main()
約瑟夫環高階問題
約瑟夫環高階 2020個數 圍成乙個圈,從第乙個開始,每過三個,刪除三個,例 從1開始,刪除2,3,4。求出最後剩下的數是多少?如下 public static void main string args if i cycle 1 如果indexlist只有乙個值,則為最後解,直接返回。if ind...
約瑟夫問題 約瑟夫環
約瑟夫 問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死...
約瑟夫問題 約瑟夫環
約瑟夫問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也...