有乙個陣列a[n]順序存放0~n-1,要求每隔兩個數刪掉乙個數,到末尾時迴圈至開頭繼續進行,求最後乙個被刪掉的數的原始下標位置。以8個數(n=7)為例:{0,1,2,3,4,5,6,7},0->1->2(刪除)->3->4->5(刪除)->6->7->0(刪除),如此迴圈直到最後乙個數被刪除。
輸入描述:
每組資料為一行乙個整數n(小於等於1000),為數組成員數,如果大於1000,則對a[999]進行計算。
輸出描述:
一行輸出最後乙個被刪掉的數的原始下標位置。
輸入例子1:
8
輸出例子1: 6
**:
#include#includeusing namespace std;
typedef struct node* ptrtonext;
typedef ptrtonext list;
typedef ptrtonext position;
struct node ;
list createlist(int n)
p2->next = head;
return head;
}int main()
cout << p1->data;
while (1);
}
迴圈鍊錶解決約瑟夫迴圈問題
最近開始複習資料結構,今天手寫了乙個約瑟夫迴圈問題。首尾相連的鍊錶 head last tail tail next head 建立迴圈鍊錶和建立普通鍊錶方法差不多,只需要首尾相連即可 已知 n 個人 以編號1,2,3,n分別表示 圍坐在一張圓桌周圍,從編號為 k 的人開始順時針報數,數到 m 的那...
迴圈鍊錶解決約瑟夫 問題
據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報數,直到所...
Josephus問題 用迴圈鍊錶解決
1.剛剛學鍊錶,因此這裡特地用迴圈鍊錶解決此問題。2.具體程式如下 joseph環問題 n個人排隊,以m報數,直到只剩1人,輸出此人編號 用迴圈鍊錶解決問題 include includeint n,m int i,k 建立結構體 struct student void main else p1 h...