if m>n :
a=0
flag=True
for i in range(n,m+1):
str(i)
t=str(i)
x=[int(j) for j in t]
k=x
x.reverse()
while k==x:
a=a+1
return a
给定两个正整数n和m,求n到m范围内(含n和m)所有回文数的个数。所谓回文数就是将各位数字反向排列所得自然数与自己相等的数。
为什么a输出结果只能是1 请在原代码上更改一下谢谢
def func(m,n):
if m>n :
a=0
for i in range(n,m+1):
t=str(i)
k=t
t = t[::-1]
if k==t:
a=a+1
return a
n=int(input())
m=int(input())
print(func(m,n))
不需要用到变量k,将x反转后,与当前循环中的i比较就可以了。
def reverse(n,m):
a=0
if m>n:
for i in range(n,m+1):
t=str(i)
x=[j for j in t]
x.reverse()
x="".join(x)
if str(i)==x:
a=a+1
return a
n,m= map(int, input().split())
print(reverse(n,m))
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!