小编典典

当数字不是快乐数字时何时停止

algorithm

通过以下过程定义一个满意的数字。以任何正整数开头,用数字的平方和代替数字,然后重复该过程,直到数字等于1。

但是,当数字不是快乐数字时,它会在一个不包含1的循环中无限循环。

我已经在python中编码了快乐数字问题,但是问题是当数字不快乐时,那我怎么能停止迭代周期。因为它不会以1结尾,并且会不断重复。

def happynumber(number):

while(number!=1):
    numberstr = str(number) #converting a number to string
    index=0 
    sum=0
    while(index!=len(numberstr)):
        sum = sum + int(numberstr[index])*int(numberstr[index])
        index = index+1
    print sum

    number = sum
return number

阅读 318

收藏
2020-07-28

共1个答案

小编典典

您可以使用固定数量的内存来检测不满意的数字。根据Wikipedia的说法,对于任何正整数起始点,该序列将在1处终止,或在处永远循环4, 16, 37, 58, 89, 145, 42, 20, 4。由于不存在其他循环,因此很容易测试不愉快程度。

def isHappy(x):
    while True:
        if x == 1:
            return True
        if x == 4:
            return False
        x = nextNumberInSequence(x)
2020-07-28