判断五位数是否为回文数
本帖最后由 paypojie 于 2022-5-28 22:19 编辑题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
原文链接 https://www.runoob.com/python/python-exercise-example30.html
首先 定义一个变量 接收用户输入的内容 再进行条件判断 如果第一位和最后一位相等就继续判断 否则就输出 num 不是回文数
如果第二位和倒数第二位相等 就输出num 是回文数 否则就输出 num 不是回文数
流程图:
代码如下
num = input('请输入一个五位数:')
if len(num) == 5 and num.isdigit():
if num == num[-1]:
if num == num[-2]:
print(num,'是回文数')
else:
print(num,'不是回文数')
else:
print(num,'不是回文数')
后来 我想能不能判断其他长度的数字是不是回文数 于是写出了以下代码 就不解释了 也比较简单
n = int(input('请输入个数:'))
n = str(n)
n1 = len(n)
d = ''
f = ''
if n1 % 2 == 0:
for i in range(len(n) // 2):
d += n
for i in range(-1,-len(n) // 2 - 1,-1):
f += n
if d == f:
print(n,'是回文数')
print(n,'不是回文数')
else:
for i in range((len(n) - 1) // 2):
d += n
for i in range(-1,-len(n) // 2,-1):
f += n
if d == f:
print(n,'是回文数')
print(n,'不是回文数')
https://www.runoob.com/python/python-exercise-example30.html
发帖时 链接弄了没反应 哈,以后不用借助直感来判断了,收藏了,感谢楼主! 咋不用reverse,直接就判断出来了啊 s = input()
print("是回文" if s==s[::-1] else "不是回文")
或者逐一判断
s = input()
length = len(s)
for i in range(length // 2):
if s != s:
print("不是回文")
break
else:
print("是回文")
没看见第二个之前 看见第一个代码我人傻了哈哈
arg = eval(input())# 将字符串转换为整数
print("是" if arg % 10 == arg // 10000 and arg // 10 % 10 == arg // 1000 % 10 else "不是")
本帖最后由 lys76 于 2022-5-29 22:39 编辑
kesai 发表于 2022-5-28 20:23
咋不用reverse,直接就判断出来了啊
reverse直接修改原列表,并且没有返回值。
{:1_893:}抱歉了。是我才疏学浅,可以使用reversed。
s = input()
print("是回文数" if list(s) == else "不是回文数")
JAVA版本 本帖最后由 熊猫拍板砖 于 2022-5-28 22:17 编辑
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 != s {
return false
}
r++
}
return true
}
页:
[1]
2