方法一:逐位判断

原理: 用一个while循环,将一个数每次都取出首位和末位,判断是否相等,只要有一次不相等退出即可。

回文数的判断条件:加入一个变量位数,如果这个数是奇数,位数为1时,即最中间那一位数,此时退出即可,同理,偶数,位数为0时,退出。

问题:

  1. 如何判断位数
  2. 如何逐位取值

优点: 思路简单

解决:

判断位数下面程序即可

 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】判断一个整数是否是回文数的三种方法相关推荐

  1. python判断回文数_Python实现判断一个整数是否为回文数算法示例

    本文实例讲述了Python实现判断一个整数是否为回文数算法.分享给大家供大家参考,具体如下: 第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较 def isPalindrome(se ...

  2. python判断回文_Python实现判断一个整数是否为回文数算法示例

    本文实例讲述了Python实现判断一个整数是否为回文数算法.分享给大家供大家参考,具体如下: 第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较 def isPalindrome(se ...

  3. 【Python】Python实验:回文是一个正向和逆向都相同的整数,如123454321、463364、9889。编写函数判断一个整数是否是回文数。

    回文是一个正向和逆向都相同的整数,如123454321.463364.9889.编写函数判断一个整数是否是回文数. 算法源码 def huiwen(n):if n==n[::-1]: ##正序和倒序是 ...

  4. 17.判断一个整数是否是回文数

    回文数(或迴文數)是指一个像14641这样"对称"的数,即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样. 判定一个正整数是否是一个回文数.例如12121是回文数 ...

  5. python判断回文数字,Python判断回文数的三种方法实例

    需求: 从控制台输入一个五位数,如果是回文数就打印"是回文数",否则打印"不是回文数",例如:11111 12321 12221 "回文"是 ...

  6. Python|判断一个5位数是不是回文数

    一个5位数,判断它是不是回文数.让我们一起来解决这个题目吧! 首先,回文数的概念:指这个数反向排序与原顺序相同并且该数字都是同一个数字的数值.在了解回文数的概念后,在python语言中需要用if循环条 ...

  7. 判断一个整数是否为回文数

    一.题目描述 二.思路 (1)可以将该整数转换成字符串,根据字符串的长度奇偶性来确定中间位置,然后首尾进行对比是否是回文数字.此时需要额外空间来存储字符串,然后进行判断 (2)可以将整数的最后一半数字 ...

  8. 判断一个整数是否是回文数

    2019独角兽企业重金招聘Python工程师标准>>> 这段代码是我做leetcode练习题时写的,虽然实现了回文数的识别,但是倒置后的数字不是一个完整的数字,而是由几个输出拼接而成 ...

  9. Python判断一个五位数是否为回文数

    huiwenshu = int(input("请输入一个五位数")) if huiwenshu // 10000 == huiwenshu % 10:if huiwenshu % ...

最新文章

  1. 模型融合方法最全总结!
  2. [Oracle]理解undo表空间
  3. 近期window7x64 打补丁之后IE11x64无法启动
  4. Excel 技巧篇-公式实现在指定范围内生成指定小数位的随机数
  5. EXCEL 列与列怎么交换?
  6. Controller的返回值
  7. 勤学如春起之苗,不见其增,日有所长!
  8. (19)VHDL实现流水灯
  9. Git基本介绍(三大分区及核心内部构造)
  10. 【深度学习】你不了解的细节问题(四)
  11. dll注册,但是对DllRegisterServer的调用失败,错误代码0x80070716
  12. 《参禅与悟道》——浅谈人生
  13. XUI 熟练使用之(五) -----------底部弹出对话框
  14. 实现isprime函数python,怎样才能实现IsPrime()函数
  15. wget:Unable to establish SSL connection错误
  16. 搭建一个属于自己的服务器,并实现内网穿透(外网访问本地服务器功能)
  17. An error occurred.Faithfully yours, nginx
  18. OR-Tools工具介绍以及实战(从入门到超神Python版)
  19. 什么行业需要用到高防服务器呢?高防服务器又有什么用?
  20. 移动物联网卡助力智慧医疗 打造新型医疗体系

热门文章

  1. centos系统mysql忘记密码
  2. C++简介 / 低级语言 / 高级语言
  3. 【日语】流行日语【一】
  4. Unsafe类源码解析
  5. Python文件读写案例——复制大小文件
  6. 【爬虫】Python爬取新浪微博别人关联手机号
  7. 传奇自动吃元宝经验卷等脚本
  8. 大学生团体合作主题班会
  9. URL、URI、域名
  10. lol峡谷之巅区服务器位置,LOL峡谷之巅地址