1748 約瑟夫問題(3 2資料結構之指標和鍊錶)

2021-08-05 22:04:04 字數 937 閱讀 5103

總時間限制: 1000ms 記憶體限制: 65536kb

描述 約瑟夫問題:有n只猴子,按順時針方向圍成一圈選大王(編號從1到n),從第1號開始報數,一直數到m,數到m的猴子退出圈外,剩下的猴子再接著從1開始報數。就這樣,直到圈內只剩下乙隻猴子時,這個猴子就是猴王,程式設計求輸入n,m後,輸出最後猴王的編號。

輸入 每行是用空格分開的兩個整數,第乙個是 n, 第二個是 m ( 0 < m,n <=300)。最後一行是:

0 0輸出

對於每行輸入資料(最後一行除外),輸出資料也是一行,即最後猴王的編號

樣例輸入

6 2

12 4

8 3

0 0

樣例輸出

5 1

7關鍵點:

1.模擬問題,注意要使用%求餘才能一圈圈報數。

2.flag陣列是從0-n-1的,因為0代表第n個猴子編號對n求餘的結果

3.cur指標其實代表的是下乙個要判斷的猴子的編號,所以設定flag陣列的時候要注意判斷臨界點0的情況。

#include 

#include

using

namespace

std;

////錯誤百出

int n,m,flag[303];

void f()

cur=(cur+1)%n;

//cout<}

if(cur==0)flag[n-1]=0;

else flag[cur-1]=0;

nn--;

}for(int i=0;iif(flag[i]&&i!=0)

else

if(flag[i]&&i==0)

}}int main(int argc, char** argv)

}return

0;}

資料結構 約瑟夫問題

約瑟夫問題 上課結束,大家聽說第一周沒有程式設計題目,立刻就被鄙視了,為了糾正這個錯誤,咱們本週就來做點簡單題目。本題要求用迴圈鍊錶實現 約瑟夫問題是乙個經典的問題。已知n個人 不妨分別以編號1,2,3,n 代表 圍坐在一張圓桌周圍,從編號為 k 的人開始,從1開始順時針報數1,2,3,順時針數到m...

資料結構 約瑟夫問題

約瑟夫問題是乙個經典的問題。已知n個人 不妨分別以編號1,2,3,n 代表 圍坐在一張圓桌周圍,從編號為k 的人開始,從1開始順時針報數1,2,3,順時針數到m 的那個人,出列並輸出。然後從出列的下乙個人開始,從1開始繼續順時針報數,數到m的那個人,出列並輸出,依此重複下去,直到圓桌周圍的人全部出列...

資料結構 約瑟夫環問題

實驗一線性表的應用 實驗目的和要求 通過實驗進一步理解線性表的邏輯結構和儲存結構,提高使用理論知識指導解決實際問題的能力,熟練掌握鍊錶的實際應用。主要內容 題目1 josephus環問題 問題描述 約瑟夫 joseph 問題的一種描述是 編號為1,2,n的n個人按順時針方向圍坐一圈,每人持有乙個密碼...