一群猴子要選新猴王。新猴王的選擇方法是:讓n只候選猴子圍成一圈,從某位置起順序編號為1~n號。從第1號開始報數,每輪從1報到3,凡報到3的猴子即退出圈子,接著又從緊鄰的下乙隻猴子開始同樣的報數。如此不斷迴圈,最後剩下的乙隻猴子就選為猴王。請問是原來第幾號猴子當選猴王?
輸入在一行中給乙個正整數n(≤1000)。
在一行中輸出當選猴王的編號。
程式**:#include
#include
int a[
1001];
//定義乙個讓猴子重新圍成乙個圈的函式
voidrr(
int w,
int n)
}int
main()
//n從11到2共退出十個猴子
//退出乙個猴子後,後面的每個猴子向前移一位,所以i每次只需要加2
for(
int i =
3;n >
1;i = i+2)
//剩下的第乙個即為猴王
printf
("%d"
, a[1]
);return0;
}
PTA 5 28 猴子選大王
一群猴子要選新猴王。新猴王的選擇方法是 讓n只候選猴子圍成一圈,從某位置起順序編號為1 n號。從第1號開始報數,每輪從1報到3,凡報到3的猴子即退出圈子,接著又從緊鄰的下乙隻猴子開始同樣的報數。如此不斷迴圈,最後剩下的乙隻猴子就選為猴王。請問是原來第幾號猴子當選猴王?輸入在一行中給乙個正整數n 10...
鍊錶 PTA 猴子選大王
一群猴子要選新猴王。新猴王的選擇方法是 讓n只候選猴子圍成一圈,從某位置起順序編號為1 n號。每只猴子預先設定乙個數 或稱定數 用最後乙隻猴子的定數d,從第一只猴子開始報數,報到d的猴子即退出圈子 當某只猴子退出時,就用它的定數決定它後面的第幾隻猴子將在下次退出。如此不斷迴圈,最後剩下的乙隻猴子就選...
PTA 約瑟夫環(猴子選大王) 詳解
n個人圍成一圈順序編號,從1號開始按1 2 3 順序報數,報p者退出圈外,其餘的人再從1 2 3開始報數,報p的人再退出圈外,以此類推。請按退出順序輸出每個退出人的原序號。輸入格式 輸入只有一行,包括乙個整數n 1 n 3000 及乙個整數p 1 p 5000 輸出格式 按退出順序輸出每個退出人的原...