作者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
1F:→ stimim:算 100,000,000 要 1.2 秒,1,000,000,000 要 12.5 秒 02/08 23:05
2F:推 puzzlez:搞不好真的会出这题XDDD 02/09 05:08
3F:推 LPH66:我的则是分别要 0.6 和 4.8 秒...果然 bitset 有加成 XD 02/10 14:33
4F:→ jurian0101:希望拙题有给各位一点牛刀小试的欢喜,C++实在好快 02/10 16:29
5F:→ squirrel1085:要用程式算的话比较适合 Prob_Solve 板? 02/10 18:33
6F:→ jurian0101:全盛期的puzzle板琳琅满目什麽都有 02/11 20:25