快乐的数字
描述
编写一个算法来确定一个数字是否“快乐”。 快乐的数字按照如下方式确定:从一个正整数开始,用其每位数的平方之和取代该数,并重复这个过程,直到最后数字要么收敛等于1且一直等于1,要么将无休止地循环下去且最终不会收敛等于1。能够最终收敛等于1的数就是快乐的数字。
例如: 19 就是一个快乐的数字,计算过程如下:
- 12 + 92 = 82
- 82 + 22 = 68
- 62 + 82 = 100
- 12 + 02 + 02 = 1
当输入时快乐的数字时,输出True,否则输出False。
输入
示例1:19
输出
示例1:True
代码如下:
#快乐的数字
def getSumofSquares(num):
numStr=str(num) #将待计算的数字转换成字符串类型
sum=0
digitls=[int(x) for x in numStr] #从字符串中提取出每一位数字存入一个列表
#注:该步略显多余,因为python中字符串可以和列表一样切片取值或循环,见下方更新部分
#print(digitls)
for i in digitls:
sum += i**2
return sum
def main():
n = input() #输入一个正整数
sumofSqrs = eval(n)
count = 0
while sumofSqrs != 1:
sumofSqrs = getSumofSquares(sumofSqrs)
count += 1
if count > 2000: #当计算次数超过2000次时,跳出循环结束计算
print("False")
break
else:
print("True")
main()
注:本题目来自python123,链接:https://python123.io/student/courses/1081/groups/9686/problems/programmings/675

浙公网安备 33010602011771号