猴子選大王問題:有n只猴子,挑選大王。挑選規(guī)則如下:
(1)將這n只猴子,圍成一圈。從某一只猴子開始,按順時針方向依次編號為1-n。
(2)給定一個初始值k,從1號猴子開始,沿順時針方向從1開始報數(shù),報到k的猴子退出。
(3)將k值增1,從剛才退出猴子逆時針方向的第1只猴子開始,從1開始沿逆時針方向報數(shù),報到k的猴子退出。
(4)將k值增1,從剛才退出猴子順時針方向的第1只猴子開始,從1開始沿順時針方向報數(shù),報到k的猴子退出。
(5)按上述(3)(4)兩步,反復報數(shù),直到圈中只剩下1只猴子。這只猴子就是大王。
現(xiàn)要求,輸入猴子的總只數(shù)n,和初始k值,要求輸出大王的編號。同學們在程老師的指導下,利用如下數(shù)據(jù)結(jié)構(gòu)來表示猴子和圓圈:
1只猴子用包含3個元素的列表表示,其中第1個元素表示猴子的編號,第2個元素表示當前猴子的前1只沒有退出圓圈的猴子的索引號,第3個元素表示當前猴子的后1只沒有退出圓圈的猴子的索引號。
圈中猴子用列表元素表示。比如,[[1,2,1],[2,0,2],[3,1,0]]表示包含3只猴子的圓圈,這也是3只猴子在挑選大王之前的初始狀態(tài)。
根據(jù)上面的數(shù)據(jù)結(jié)構(gòu),小李同學設(shè)計的算法并實現(xiàn)的python 代碼如下,請回答下列問題。
(1)根據(jù)上述算法,如輸入猴子數(shù)量n為3,k值為2,則大王編號為
3
3
號。
(2)為使程序正確運行,請在橫線處填入合適代碼。