NO_36_Double-base palindromes
来源:互联网 发布:sql字符串截断怎么改 编辑:程序博客网 时间:2024/05/16 04:59
The decimal number, 585 = 10010010012 (binary), is palindromic in both bases.
Find the sum of all numbers, less than one million, which are palindromic in base 10 and base 2.
(Please note that the palindromic number, in either base, may not include leading zeros.)
代码:
import timet=time.time()def is2bitpalindromes(n): n_str=str(bin(n))[2:] return n_str[::-1]==n_strfinalnumlist=set()maxnum=1000000continueflag=Truefor x in range(1000): x_str=str(x) tempnum1=int(x_str+x_str[::-1]) if is2bitpalindromes(tempnum1): finalnumlist.add(tempnum1) for tempx in xrange(0,10): if not continueflag: break tempnum2=int(x_str+str(tempx)+x_str[::-1]) if tempnum2>maxnum: continueflag=False break if is2bitpalindromes(tempnum2): finalnumlist.add(tempnum2)for x in xrange(10): if is2bitpalindromes(x): finalnumlist.add(x)print sorted(list(finalnumlist))print sum(finalnumlist)print time.time()-t运行结果为:
[0, 1, 3, 5, 7, 9, 33, 99, 313, 585, 717, 7447, 9009, 15351, 32223, 39993, 53235, 53835, 73737, 585585]
872187
0.00600004196167
起初的时候有几种特殊情况我没有考虑到:
像0,1,3,5,这种个位数的
2.像9009这种数的
0 0
- NO_36_Double-base palindromes
- [Euler]Problem 36 - Double-base palindromes
- projecteuler---->problem=36----Double-base palindromes
- Project Euler:Problem 36 Double-base palindromes
- 欧拉工程第36题:Double-base palindromes
- Problem 36 Double-base palindromes (二进制回文)
- Palindromes
- Palindromes
- Palindromes
- Palindromes
- Palindromes
- Palindromes
- Palindromes
- Palindromes
- Palindromes
- Palindromes
- Palindromes
- Palindromes
- 取消MyEclipse的自动更新updating
- 疯狂Android讲义2.1.3
- 30 分钟 - Construct Binary Tree from Inorder and Postorder Traversal
- 拓扑排序-模板
- MFC 消息映射机制剖析
- NO_36_Double-base palindromes
- 愤慨的小鸟-----小鸟群筹办动画
- 类的自动类型转换和强制类型转换
- cocos2dx3.0无法取消Armatrue骨骼动画中的补间效果问题的解决办法
- 1分钟 - Linked List Cycle II
- 大数问题 ZOJ Problem Set - 2001 Adding Reversed Numbers
- 呼叫覆盖(Call Coverage)功能汇总
- Objective-c语法之基本数据类型转换&使用
- 1442 Black Box