吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1331|回复: 19
收起左侧

[学习记录] 判断五位数是否为回文数

[复制链接]
甜萝 发表于 2022-5-28 19:57
本帖最后由 paypojie 于 2022-5-28 22:19 编辑

题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

原文链接 https://www.runoob.com/python/python-exercise-example30.html

首先 定义一个变量 接收用户输入的内容 再进行条件判断 如果第一位和最后一位相等就继续判断 否则就输出 num 不是回文数
如果第二位和倒数第二位相等 就输出num 是回文数 否则就输出 num 不是回文数

流程图:

uTools_1653738401988.png

代码如下


[Python] 纯文本查看 复制代码
num = input('请输入一个五位数:')
if len(num) == 5 and num.isdigit():
    if num[0] == num[-1]:
        if num[1] == num[-2]:
            print(num,'是回文数')
        else:
            print(num,'不是回文数')
    else:
        print(num,'不是回文数')

后来 我想能不能判断其他长度的数字是不是回文数 于是写出了以下代码 就不解释了 也比较简单
[Python] 纯文本查看 复制代码
n = int(input('请输入个数:'))
n = str(n)
n1 = len(n)
d = ''
f = ''
if n1 % 2 == 0:
    for i in range(len(n) // 2):
        d += n[i]
    for i in range(-1,-len(n) // 2 - 1,-1):
        f += n[i]
    if d == f:
        print(n,'是回文数')
        print(n,'不是回文数')
else:
    for i in range((len(n) - 1) // 2):
        d += n[i]
    for i in range(-1,-len(n) // 2,-1):
        f += n[i]
    if d == f:
        print(n,'是回文数')
        print(n,'不是回文数')

免费评分

参与人数 2吾爱币 +1 热心值 +1 收起 理由
jiudunmi + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
pokp + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 甜萝 发表于 2022-5-28 20:06
https://www.runoob.com/python/python-exercise-example30.html
发帖时 链接弄了没反应
duandaxian 发表于 2022-5-28 20:10
哈,以后不用借助直感来判断了,收藏了,感谢楼主!
kesai 发表于 2022-5-28 20:23
yep96 发表于 2022-5-28 20:31
[Python] 纯文本查看 复制代码
s = input()
print("是回文" if s==s[::-1] else "不是回文")

或者逐一判断
[Python] 纯文本查看 复制代码
s = input()
length = len(s)
for i in range(length // 2):
    if s[i] != s[length-1-i]:
        print("不是回文")
        break
else:
    print("是回文")
southward 发表于 2022-5-28 20:45
没看见第二个之前 看见第一个代码我人傻了  哈哈
lys76 发表于 2022-5-28 20:45
[Python] 纯文本查看 复制代码
arg = eval(input())  # 将字符串转换为整数
print("是" if arg % 10 == arg // 10000 and arg // 10 % 10 == arg // 1000 % 10 else "不是")
lys76 发表于 2022-5-28 21:08
本帖最后由 lys76 于 2022-5-29 22:39 编辑
kesai 发表于 2022-5-28 20:23
咋不用reverse,直接就判断出来了啊

reverse直接修改原列表,并且没有返回值。
抱歉了。是我才疏学浅,可以使用reversed。
[Python] 纯文本查看 复制代码
s = input()
print("是回文数" if list(s) == [i for i in reversed(list(s))] else "不是回文数")
a525 发表于 2022-5-28 21:14
JAVA版本
1653743616(1).jpg
熊猫拍板砖 发表于 2022-5-28 21:46
本帖最后由 熊猫拍板砖 于 2022-5-28 22:17 编辑

[Golang] 纯文本查看 复制代码
func isPalindrome(x int) bool {
        if x < 0 {
                return false
        }
        s := 0
        s1 := x
        for s1 > 0 {
                tmp := s1 % 10
                s1 = s1 / 10
                s = s*10 + tmp
        }
        if s == x {
                return true
        }
        return false
}
func isPalindrome(s string) bool {

   // 双指针,从前后开始遍历对比
   r := len(s) - 1
   size := len(s) >> 1
   for i := 0; i < size; i++ {
      if s[i] != s[r] {
         return false
      }
      r++
   }
   return true
}
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表