整数在递归后返回“无”

时间:2019-07-25 14:54:04

标签: python function recursion return

我一直在尝试对有关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作为输出,但是我什么也没有。

0 个答案:

没有答案