我一直在尝试对有关Kaprekars常数的coderbyte进行挑战。 基本上,代码按降序对整数进行排序,然后减去该数字的倒数。这一直持续到代码达到6174。例如:3425 >> 5432-2345 = 3087 >> 8730-0378 = 8352 ...
这部分计算递归。
recs += 1
然后我尝试在此if语句中将其返回
if sonC == "6174":
return strecs
else:
KaprekarsConstant(sonC, recs)
我试图将整数更改为字符串,然后将其返回,这是同样的问题。不返回任何内容。
def KaprekarsConstant(num, recs):
#Reverses the first number then
str1 = ''.join(sorted(num, reverse=True))
str2 = ''.join(reversed(str1))
num1 = int(str1, 10)
num2 = int(str2, 10)
if num1 > num2:
son = num1 - num2
else:
son = num2 - num1
sonC = str(son)
if len(sonC) != 4:
sonC = "0" + sonC
recs += 1
if sonC == "6174":
return strecs
else:
KaprekarsConstant(sonC, recs)
print KaprekarsConstant(raw_input(), 1)
我希望得到recs作为输出,但是我什么也没有。