第4章 18 猴子選大王 20分

2021-10-07 16:21:57 字數 1075 閱讀 1645

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

輸入格式:

輸入在一行中給乙個正整數n(≤1000)。

輸出格式:

在一行中輸出當選猴王的編號。

輸入樣例:

11輸出樣例:

7陣列裡去掉3的倍數

思路沒問題,但**一開始把自己繞得小暈

n =

int(

input()

)s =

[i for i in

range(1

,n+1)]

yu =

0#開始餘數預設0

while

len(s)

>1:

tmp,yu = yu,

(len

(s)+yu)%3

#去掉 餘數 加 3的倍數

for i in

range

(len

(s)-1,

-1,-

1):#尾部開始去

if(i+

1+tmp)%3

==0: s.remove(s[i]

)print

(s[0

])

大佬的思路,簡潔明瞭,先把第三個斃了,然後把前兩個移到最後面,重新組成乙個陣列

下面是抄的大佬**

n=

int(

input()

)s=[i for i in

range(1

,n+1)]

while

len(s)

>=3:

s = s[3:

]+s[0:

2]#去掉第三個,把前兩個移到最後面

s=s*

2#防止只有乙個情況,反正兩個乘了也沒毛病

print

(s[1

])

第4章 18 猴子選大王 20分

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

python 第4章 18 猴子選大王 20分

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

第4章 17 猴子選大王 20分

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