【Python】判断一个整数是否是回文数的三种方法
方法一:逐位判断
原理: 用一个while循环,将一个数每次都取出首位和末位,判断是否相等,只要有一次不相等退出即可。
回文数的判断条件:加入一个变量位数,如果这个数是奇数,位数为1时,即最中间那一位数,此时退出即可,同理,偶数,位数为0时,退出。
问题:
- 如何判断位数
- 如何逐位取值
优点: 思路简单
解决:
判断位数下面程序即可
y=xweishu=0while x:weishu+=1x=x//10
先将判断的x赋值给y,当x不为0时,表明现在x还有位数,位数+1,x/10减少一位,但要记住,用地板除(//)直接得到int整数,否则用/会出现浮点数
逐位取值:
a=y//(10**(weishu-1))b=y%10if a!=b:print("不是回文数。")breakweishu-=2y=y//10y=y%(10**weishu)
取得首位只要地板除以相应的位数,把首位后面的数舍去,比如一个五位数,地板除10000(10的4次方,所以是位数-1),就会得到首位,末尾比较简单,只要对10取模得到余数就是各位,a是首位,b是末位。
判断首尾相等后,先将位数-2,然后将首尾的数字都给删掉,删掉末位//10即可,删掉首位:如果是五位数,现在删掉末位后是四位数,地板与1000取模即可
然后是判断如何判断退出循环
如上文,判断位数最后的值即可
最后判断负数和个位数即可
实现代码如下:
x=int(input("请输入一个整数:"))
if x<0:print("不是回文数。")
elif not x//10:print("是回文数。")
else:y=xweishu=0while x:weishu+=1x=x//10while True:a=y//(10**(weishu-1))b=y%10if a!=b:print("不是回文数。")breakweishu-=2if weishu==1:print("是回文数。")breakif not weishu:print("是回文数。")breaky=y//10y=y%(10**weishu)
方法二:得到颠倒后的数判断
原理: 每一个回文数从中间切开前后都是相等的,所以得到一个回文数后面的数与前面的数比较即可
那么问题来了,如果是奇位数,怎么判断?
解决: 只要最后得到的前面的数或者后面的数除去末位数与另一个相等即可,因为奇位数中间的数不用管,其他的数相等就可以,所以删去末位判断是否相等
难点: 如何得到后面的数?
每次将后面的数乘上10,然后加上前面数的末位,前面的数地板除10消除末位即可
如何判断后面的数已经取好了,即退出循环的判断条件是:
就是当后面的数已经大于等于前面的数就可以退出循环了
优点: 代码简单
实现程序如下:
hou=0while(x>hou):hou=hou*10+x%10x//=10if x==hou or x==(hou//10):print("是回文数。")else:print("不是回文数。")
最后判断负数和末位是0但不是0的数,他们一定不是回文数,因为开头不能是0
个位数此程序能够判断,后面的数就是此个位数,地板除10之后和前面一样都是10,即回文数
最终程序:
x = int(input("请输入一个整数:"))
if x < 0 or (x % 10 == 0 and x != 0):print("不是回文数。")
elif not x // 10:print("是回文数。")
else:hou = 0while (x > hou):hou = hou * 10 + x % 10x //= 10if x == hou or x == (hou // 10):print("是回文数。")else:print("不是回文数。")
方法三:字符串处理
原理: 字符串其实是序列,我们只要将字符串倒过来判断是否和原字符串相等就可以了
反转可以用x[::-1]
实现代码如下
x=input("请输入一个整数:")
if x==x[::-1]:print("是回文数。")
else:print("不是回文数。")
要是你说还能不能更高级一点,还可以用条件表达式这样写
x=input("请输入一个整数:")
print("是回文数。") if x==x[::-1] else print("不是回文数。")
但是如果他给你一个09890也会报错,具体解决可以先转化为int,再转化为str
最终成品:
x=int(input("请输入一个正整数:"))
x=str(x)
print("是回文数。") if x==x[::-1] else print("不是回文数。")
【Python】判断一个整数是否是回文数的三种方法相关推荐
- python判断回文数_Python实现判断一个整数是否为回文数算法示例
本文实例讲述了Python实现判断一个整数是否为回文数算法.分享给大家供大家参考,具体如下: 第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较 def isPalindrome(se ...
- python判断回文_Python实现判断一个整数是否为回文数算法示例
本文实例讲述了Python实现判断一个整数是否为回文数算法.分享给大家供大家参考,具体如下: 第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较 def isPalindrome(se ...
- 【Python】Python实验:回文是一个正向和逆向都相同的整数,如123454321、463364、9889。编写函数判断一个整数是否是回文数。
回文是一个正向和逆向都相同的整数,如123454321.463364.9889.编写函数判断一个整数是否是回文数. 算法源码 def huiwen(n):if n==n[::-1]: ##正序和倒序是 ...
- 17.判断一个整数是否是回文数
回文数(或迴文數)是指一个像14641这样"对称"的数,即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样. 判定一个正整数是否是一个回文数.例如12121是回文数 ...
- python判断回文数字,Python判断回文数的三种方法实例
需求: 从控制台输入一个五位数,如果是回文数就打印"是回文数",否则打印"不是回文数",例如:11111 12321 12221 "回文"是 ...
- Python|判断一个5位数是不是回文数
一个5位数,判断它是不是回文数.让我们一起来解决这个题目吧! 首先,回文数的概念:指这个数反向排序与原顺序相同并且该数字都是同一个数字的数值.在了解回文数的概念后,在python语言中需要用if循环条 ...
- 判断一个整数是否为回文数
一.题目描述 二.思路 (1)可以将该整数转换成字符串,根据字符串的长度奇偶性来确定中间位置,然后首尾进行对比是否是回文数字.此时需要额外空间来存储字符串,然后进行判断 (2)可以将整数的最后一半数字 ...
- 判断一个整数是否是回文数
2019独角兽企业重金招聘Python工程师标准>>> 这段代码是我做leetcode练习题时写的,虽然实现了回文数的识别,但是倒置后的数字不是一个完整的数字,而是由几个输出拼接而成 ...
- Python判断一个五位数是否为回文数
huiwenshu = int(input("请输入一个五位数")) if huiwenshu // 10000 == huiwenshu % 10:if huiwenshu % ...
最新文章
- python去重复行_python去除文件中重复的行实例
- 安装apr和tomcat-native优化tomcat
- Hbase 学习(六) 配置文件调优
- before css 旋转_七夕,当然少不了纯CSS的点缀啦
- 怎么样用 Python 实现读写锁
- Team Work(CF 932 E)[bzoj5093][Lydsy1711月赛]图的价值
- javascript 代码_如何开始对JavaScript代码进行单元测试
- probe request帧结构_WLAN 无线网络 09 - 管理帧
- fedora 安装google浏览器失败,报错
- 关于马尔科夫随机场MRF的思考
- 强连通分量[trajan]
- python 典型相关分析_典型关联分析(CCA)原理
- YOLOV2 YOLO9000
- 最好用的PDF阅读器,登陆华为应用市场首页
- visio移动变得很卡的解决办法
- 我是怎么和SAP结缘的 - Jerry的SAP校园招聘之路
- 批量保存拼多多批发商城商品主图及视频
- openfalcon 组件监控_Centos7部署Open-Falcon监控
- stm32f103c8 使用cc1101模块
- ELM极限学习实现汽油辛烷值预测(MATLAB)
热门文章
- 纳什博弈论的原理与应用--北京晚报
- 推荐算法的介绍以及实现一个简单的推荐算法(python实现协同过滤)
- python桌面宠物模块_桌面宠物Oline-------------面向程序综合设计2020
- c语言中strtok函数详解,手把手教你自主实现字符串切割函数,内附详细代码。
- AJAX实现百度搜索栏效果
- 我的世界java版双海底神殿种子_我的世界手机版海底神殿代码 0.16海底遗迹种子代码...
- MES 8D报告:在制造业中解决问题的有效方法
- 苹果手机微信声音小怎么调大声_开挂人生,平凡女的金苹果小说 - 你爱的小说 - 兴趣联盟 - 话题 - 依恋你而已 - 推特中文网...
- 探索 JSPyBridge,一个在 JavaScript 中使用 Python 的新库
- java导出word并向导出的word中添加附件