0
点数
所以有很多的算法来评估一个int是否是回文,即函数计算数值的回文结构有效性浮动使用Python
def ReverseNumber(n, partial=0):
if n == 0:
return partial
return ReverseNumber(n // 10, partial * 10 + n % 10)
或者这一个:
def isPalindrome(x):
if (x < 0):
return False
div = 1
while (x/div >= 10):
div *= 10
while (x != 0):
l = x/div
r = x % 10
if (l != r):
return False
x = (x % div)/10
div /= 100
return True
然而,我想要做的是评估一个数字,如1.01
或22.22
等等,无论这些数字本身是否是回文。
除了ints
之外,上述算法还可以如何适用于floats
?
这是我使用调用它的代码:
import sys
# This method determines whether or not the number is a Palindrome
def isPalindrome(x):
x = str(x).replace('.','')
a, z = 0, len(x) - 1
while a < z:
if x[a] != x[z]:
return False
a += 1
z -= 1
return True
if '__main__' == __name__:
trial = int(sys.argv[1])
# check whether we have a Palindrome
if isPalindrome(trial):
print("It's a Palindrome!")
你也可以做'return x == x [:: - 1]'。 – Blender
我得到这个错误'ValueError:无效文字为int()与基10:'1.01'' –
你在哪里使用int()? – chepner