約瑟夫問題(猴子選大王)

2021-06-25 14:35:17 字數 807 閱讀 2332

問題描述

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

輸入資料

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

輸出要求

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

輸入樣例:

6 2

12 4

8 30 0

輸出樣例:5

1 7

#include

#define maxsize 1024

int jose(int mon,int n,int m)

while(count

b[count]=mon[i]; //將出列的猴子存至陣列b中

mon[i]=0;

count++;

}// for(i=0;i

// return b[n-1];

}void main()

else

}printf("輸出最後猴王的編號:\n");

for(j=0;j

printf("%d\n",king[j]);

}

猴子選大王 約瑟夫問題

例題描述 由m只猴子圍成一圈,從1到m進行編號,打算從中選出乙個大王,經過協商,決定選出大王的規則 從第乙個開始迴圈報數,數到n的猴子出圈,下乙個猴子從1開始報數。輸入樣例 3 2 輸出樣例 3方法一 模擬法 include using namespace std define max 100 lo...

約瑟夫問題,猴子選大王

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

猴子選大王 約瑟夫問題

1.問題 一群猴子要選新猴王。新猴王的選擇方法是 讓n只候選猴子圍成一圈,從某位置起順序編號為1 n號。從第1號開始報數,每輪從1報到3,凡報到3的猴子即退出圈子,接著又從緊鄰的下乙隻猴子開始同樣的報數。如此不斷迴圈,最後剩下的乙隻猴子就選為猴王。請問是原來第幾號猴子當選猴王?輸入格式 輸入在一行中...