Python编程题24--回文数
2021/10/31 11:39:30
本文主要是介绍Python编程题24--回文数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目
现在给定一个整数 x ,请判断 x 是否是回文数,如果 x 是一个回文整数,返回 True ;否则,返回 False 。
说明:回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
注意:这里不允许直接使用将整数转换为字符串的方法。
例如:
给定一个整数:121,返回结果:True
给定一个整数:-121,返回结果:False
给定一个整数:123,返回结果:False
实现思路1
- 通过
取模运算
,每次把整数除以10,得到余数 - 如果 整数x 小于0,或者被10整除,那么说明该整数 x 必然不是回文数
- 设置数字反转后的值为 reverse_x ,默认为 0 ;设置 tmp=x ,用于取模运算
- 通过 while 循环,每次循环对 tmp 进行取模运算,结合余数求出每次循环后的倒序结果 reverse_x,最终判断 reverse_x 与 x 是否相等
- 上面做法是把所有数字都反转,需要循环 n 次
例如给定整数 12321 ,按上面思路,得到初始值:reverse_x = 0,tmp = 12321,然后计算如下:
第 1 次循环: 求出个位上的数 12321 % 10 = 1
reverse_x = reverse_x * 10 + 1 = 1
tmp = tmp // 10 = 1232第 2 次循环: 求出十位上的数 1232 % 10 = 2
reverse_x = reverse_x * 10 + 2 = 12
tmp = tmp // 10 = 123第 3 次循环: 求出百位上的数 123 % 10 = 3
reverse_x = reverse_x * 10 + 3 = 123
tmp = tmp // 10 = 12第 4 次循环: 求出千位上的数 12 % 10 = 2
reverse_x = reverse_x * 10 + 2 = 1232
tmp = tmp // 10 = 1第 5 次循环: 求出万位上的数 1 % 10 = 1
reverse_x = reverse_x * 10 + 1 = 12321
tmp = tmp // 10 = 0
代码实现
def isPalindrome(x): if x < 0 or (x != 0 and x % 10 == 0): return False reverse_x, tmp = 0, x while tmp > 0: reverse_x = reverse_x * 10 + tmp % 10 tmp = tmp // 10 return reverse_x == x
实现思路2
- 通过
取模运算
,该实现是对上面的方法进行优化 - 如果 整数x 小于0,或者被10整除,那么说明该整数 x 必然不是回文数
- 设置数字反转后的值为 reverse_x ,默认为 0
- 通过 while 循环,每次循环对 x 进行取模运算, 结合余数求出每次循环后的倒序结果 reverse_x,当 x < reverse_x 时,结束循环
- 最终判断 reverse_x 与 x 是否相等,或者 reverse_x 整除10 后的值与 x 是否相等
- 上面做法是仅把一半数字都反转,需要循环 n / 2 次
例如 x=12321,那么循环结束后的最终结果为:reverse_x = 123,x = 12,此时判断 reverse_x 整除10 后的值与 x 是否相等;
例如 x=123321,那么循环结束后的最终结果为:reverse_x = 123,x = 123,此时判断 reverse_x 与 x 是否相等 。
代码实现
def isPalindrome(x): if x < 0 or (x != 0 and x % 10 == 0): return False reverse_x = 0 while x > reverse_x: reverse_x = reverse_x * 10 + x % 10 x = x // 10 return x == reverse_x or x == reverse_x // 10
这篇关于Python编程题24--回文数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-30Python中''') 是什么?-icode9专业技术文章分享
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程