用 Python 解回文数的个数

看到有人写博客用 c 求回文数,相必是和我一样的新手。刚好接触了 Python,用 Python 捣鼓了一个。一行代码足以~

先上代码:

输出所有的回文数:

print [x for x in range(1,10001) if x == int(str(x)[::-1])]

输出长度,用 len() 函数即可:

print len([x for x in range(1,10001) if x == int(str(x)[::-1])])

运行结果:

用 Python 解回文数的个数_第1张图片



--------------------------------------------------------------------------------------------------------------------------------------------------------------------


在学习的过程中,顺便接触了 Python,Python 是一门极其简洁的语言。且看 Python 格言:

用 Python 解回文数的个数_第2张图片

我的思路来源于 Matrix67 博客一篇文章的评论,此人用 Python 求 1-4000 内数字之和能被 4 整除的个数,代码如下:

print len([ x for x in range(1, 4001) if not sum(map(int, str(x))) % 4])

我仿思路,思考了一下回文数需要的判断条件: 反转、判断是否相等。这些都是可以用 Python 很简单的实现的。大致思路如下
1. 数字转换为字符串
2. 字符串反转
3. 判断是否相等
4. 类型转换(字符串到数字)
5. 打印输出、得到个数

在 Stack Overflow 上采用了几个精彩的回答。
字符串反转:

print ''.join(reversed('hello world'))

print 'hello world'[::-1]
第二中效率更高,用的是 Python 的切片特性(扩展),-1 表示的是步长,直观的即从右到左。

执行算法的过程中做了些许的测试,最终代码便成型了。

对于渣渣的我,这样还是有一点成就感的。学会构建算法,查看原生文档,搜寻网络资源,都是基础中的基础吧。



你可能感兴趣的:(Python)