Python 如果一个四位回文数abba/bb等于一个整数,那么有多少个abba?
Mursalin获取一个四位数的回文数字'n',并将其从中间两位数删除,得到一个两位数的数字'm'。如果n/m是一个整数,那么n有多少种可能的选择?。下面的代码返回零,但有什么问题吗?Python 如果一个四位回文数abba/bb等于一个整数,那么有多少个abba?,python,palindrome,Python,Palindrome,Mursalin获取一个四位数的回文数字'n',并将其从中间两位数删除,得到一个两位数的数字'm'。如果n/m是一个整数,那么n有多少种可能的选择?。下面的代码返回零,但有什么问题吗? array = [] array2 = [] for i in range(1000,10000): if str(i) == str(i)[::-1]: array.append(str(i)) print(array) for nums in array: num = nums
array = []
array2 = []
for i in range(1000,10000):
if str(i) == str(i)[::-1]:
array.append(str(i))
print(array)
for nums in array:
num = nums[1:3]
num1 = int(num)
num2 = int(nums)
if num1 == 00:
continue
num3 = num2/num1
if str(num3).isdigit():
array2.append(nums)
print(array2)
print(len(array2))
您的除法
num3=num2/num1
没有像返回浮点一样工作。您应该检查n/m
是否为整数,即欧几里得除法的其余部分是否等于零。试试这个:
array = []
array2 = []
for i in range(1000,10000):
if str(i) == str(i)[::-1]:
array.append(str(i))
print(array)
for pal in array:
middle = int(pal[1:3])
palindrome = int(pal)
if middle == 00:
continue
# Check if division's rest is 0, so division's value is integer
if palindrome % middle == 0:
array2.append(pal)
print(array2)
print(len(array2))
研究num3num3的运算NUM3将始终返回浮点,我想知道如何处理这个num2//num1是整数除法,但num2%num1==0是更好的检查方法问题是删除中间的两位数字以获得两位数字
m
,这意味着m
应该是原始4位数字的剩余部分,因此,您应该测试abba/aa是否为整数,而不是测试abba/bb。