利用迴圈鍊錶實現約瑟夫問題。約瑟夫問題如下:已知n個人(n>=1)圍坐一圓桌周圍,從1開始順序編號。從序號為1的人開始報數,順時針數到m的那個人出列;他的下乙個人又從1開始報數,數到m的那個人又出列;依此規則重複下去,直到所有人全部出列。請問最後乙個出列的人的編號。
輸入描述:
一行,人數n和整數m,中間用空格隔開
輸出描述:
一行,最後乙個出列的人的編號
樣例輸入:5 3樣例輸出:
4
#include
using
namespace std;
class
node
int data;
node *next;};
node *
clinklist
(int n)
r->next = rear;
return rear;
}void
output
(node *rear,
int m)
else
} cout << r-
>data << endl;
}int
main()
class
node
int data;
node *next;
};
**:
(1)data 的值為i
node *
clinklist
(int n)
r->next = rear;
return rear;
}
**:
迴圈鍊錶rear的重要性
void
output
(node *rear,
int m)
else
} cout << r-
>data << endl;
}
**:
計數,刪除,迴圈,直到只剩一人
祖瑪遊戲分析
0664
線性表操作練習
1 線性表練習 1 從給定順序表a中刪除元素值在x到y x y 之間的所有元素,效率要求較高。int def vector a,int n,elemtype x,elemtype y return n k 2 用不多於3n 2的平均比較次數,在乙個順序表a中找出最大的和最小的值。void maxmi...
線性表小練習
2018 3 1 資料結構 2.對於增加數採用迴圈的方法,所加數的後面數都向後移 最後的數先移 for j l length j i j l data j l data j 1 3.對於減少數採用迴圈的方法,所減數的後面數字向前移動 最先的數最先移 for i i l length i l data...
作業 線性表練習
1 1對於順序儲存的長度為n的線性表,訪問結點和增加結點的時間複雜度分別對應為o 1 和o n 2分 t 1 2對於順序儲存的長度為n的線性表,刪除第乙個元素和插入最後乙個元素的時間複雜度分別對應為o 1 和o n 2分 f 1 3迴圈鍊錶不是線性表。2分 f 1 3答案正確 2 分 1 4順序儲存...