购买主题
本帖最后由 afula 于 2020-11-5 11:09 编辑
def f(num):
if len(str(num)) == 1 or num == 0:
return True
else:
#如果最低位和最高位的数字相等,则将num去除最高位和最低位进入下一次的迭代。不相等就直接结束迭代。
if num // pow(10, len(str(num))-1) == num % 10:
return f((num % pow(10, len(str(num))-1))// 10)
else:
return False
num = int(input("输入:"))
if f(num):
print("输出:是回文数")
else:
print("输出:不是回文数")
本帖最后由 afula 于 2020-11-5 16:14 编辑
#小甲鱼没有放答案在上面,我就写写看,这个的迭代必须要迭代数字位数的1/2次.
def fa(x, revertedNumber=0):
if x < 0 or (x % 10 == 0 and x != 0):
return False
else:
if x // 10 == revertedNumber or x == revertedNumber:
return True
elif len(str(x)) == len(str(revertedNumber)) or len(str(x))-1 == len(str(revertedNumber)):
return False
else:
return fa(x // 10, x % 10 + revertedNumber * 10)
num = int(input("输入:"))
if fa(num):
print("输出:是回文数")
else:
print("输出:不是回文数")
r
{:5_107:}
1
66666
?
学习
1
看
方法一(比较字符串):
a = str(input('请输入一个数:'))
list1 = []
for each_num in a:
list1.append(each_num)
list2 = list(reversed(list1))
if list1 == list2:
print('是回文数')
方法二(比较数字):
b = 0
c = 0
a = int(input('请输入一个数:'))
d = a
for r in str(a):
c = a
a = a//10
if c>=10:
b += (c%10)
b *= 10
else:
b += c
if b == d:
print('是回文数')
else:
print('不是回文数')
111
1
#!/usr/bin/python3
"""
输入:12321
输出:是回文数。
输入:12345
输出:不是回文数。
输入:-12321
输出:不是回文数。
输入:0
输出:是回文数。
"""
def palindrome(num):
for i in range(len(num)):
if num==num[-(i+1)]:
continue
else:
print("%s不是回文数"% num)
return False
print("%s是回文数" % num)
return True
palindrome('123456789')
康康答案
1
1
1
我看看
已有 25 人购买 本主题需向作者支付 5 鱼币 才能浏览