問題描述
約瑟夫問題:有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的猴子即退出圈子,接著又從緊鄰的下乙隻猴子開始同樣的報數。如此不斷迴圈,最後剩下的乙隻猴子就選為猴王。請問是原來第幾號猴子當選猴王?輸入格式 輸入在一行中...