通过以下过程定义一个满意的数字。 以任何正整数开头,用数字的平方和代替数字,然后重复该过程,直到数字等于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
你能告诉我们你做了什么吗?
您必须想出一种方法来检测周期并打破周期。 这应该足以作为家庭作业的提示。 ;)
序列在重复或达到1之前要经过多长时间是否有限制? (我猜不是,在这种情况下,这是一个难题。)
@AndrewJaffe,我希望有一个明确的限制。 序列不可能永远增长-一旦超过一定大小,x的数字平方和总是小于x本身。 因此,对于任何起始编号,该序列肯定会在有限数量的步骤后开始循环。
是的,它确实会重复,但是不同的数字会有所不同