作者jurian0101 (Hysterisis)
看板puzzle
標題[問題] 假的ProjectEuler -翻轉數列
時間Wed Feb 8 18:58:21 2012
如果一個數被轉180度後變成另一數,稱為「翻轉數」。例如169 <-> 691, 但
146 就非翻轉數。特別允許翻過來時0在首位,然後將其移除取值。
於是全由1,6,8,9,0組成的數就是翻轉數,記作rev(x)
例如 rev(1680) := 0891 := 891
定義數列 <a(n)>, a(1)=1
{ rev (a(n)) , 若rev(a(n)) 在前面不曾出現
a(n+1) = {
{ a(n) + 1
根據定義, <a(n)> 的前幾項是:
1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 91, 92, 93, 94, 95,
96, 97, 98, 86, 87, 88, 89, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 8, 9, 10, 11, 12, 13, ...
已知 a(10000) = 5168,求 a(1,000,000)
: 我還沒算出來 (遭毆打)
: 又,題目是睡前數羊時想出來的 (再遭毆打)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.164.8.2
→ stimim:算 100,000,000 要 1.2 秒,1,000,000,000 要 12.5 秒 02/08 23:05
推 puzzlez:搞不好真的會出這題XDDD 02/09 05:08
推 LPH66:我的則是分別要 0.6 和 4.8 秒...果然 bitset 有加成 XD 02/10 14:33
→ jurian0101:希望拙題有給各位一點牛刀小試的歡喜,C++實在好快 02/10 16:29
→ squirrel1085:要用程式算的話比較適合 Prob_Solve 板? 02/10 18:33
→ jurian0101:全盛期的puzzle板琳瑯滿目什麼都有 02/11 20:25