#12380: 解題心得


a5083 (assassin刺客大師)

學校 : 新北市立板橋高級中學
編號 : 28347
來源 : [140.116.138.99]
最後登入時間 :
2017-06-27 17:13:56
b576. 北門街 -- 104學年度板橋高中校內資訊學科能力競賽(五) | From: [140.116.92.38] | 發表日期 : 2017-07-18 12:50

這題要考你的不是遞迴,而是要你觀察數列的性質

當數列為

 

1  2  3  3  2  1  3  2  1  1  2  3  3  2  1  1  2  3  1  2  3  3  2  1...

我們可以注意到第2、5、8、11、14...個數都為2

再來就是比較複雜的部分

當遇到第3*(2^0)=3個數時其值為3

當遇到第3*(2^1)=6個數時其值為1

當遇到第3*(2^2)=12個數時其值為3

當遇到第3*(2^3)=24個數時其值為1

當遇到第3*(2^4)=48個數時其值為3

....

 

我們可以把這一序列的數字存起來,所以可得[3, 6, 12, 24, 48 .... ] (存到出現9位數的數字即可)

接下來我們要判斷的是第K個數字其值為1還是3時

可以用此步驟判斷

ex.

K=31

31 - 24 = 7

7 - 6 = 1 

("-"的步驟做到最後為1或3時停止)

"-"的步驟做了兩次,若是偶數次步驟則得到的答案不會改變,即為1

 

 

K=24

24 - 12 = 12

12 - 6 = 6

6 - 3 = 3 

("-"的步驟做到最後為1或3時停止)

"-"的步驟做了三次,若是奇數次步驟則得到的答案會改變

不是3變為1、就是1變為3

因為最後6-3=3,所以3變為1---->答案為1

 

 

 

 

 

 

 
ZeroJudge Forum