习题:快乐的数字
平台:Python123.io
教师:嵩天
描述
编写一个算法来确定一个数字是否“快乐”。 快乐的数字按照如下方式确定:从一个正整数开始,用其每位数的平方之和取代该数,并重复这个过程,直到最后数字要么收敛等于1且一直等于1,要么将无休止地循环下去且最终不会收敛等于1。能够最终收敛等于1的数就是快乐的数字。
例如: 19 就是一个快乐的数字,计算过程如下:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
当输入时快乐的数字时,输出True,否则输出False。
此题隐含条件:任何正整数按照题目方式一直计算每位数平方和,最后一定会收敛于1或进入一个“循环”。
var = 1
while var == 1: #制作一个循环,可以反复输入数字来判断是不是“快乐的数”
a = input() #输入一个正整数
while (a != 1 and a != 4): #当a不等于1或者4时,一直计算平方和
num = list(str(a)) #读取输入数字的每位数制成列表
a = 0 #初始化a,用于计算每位平方和。此时a值已保存在num里,无需担心丢失。
for i in num: #遍历num列表中所有数值,计算出每位数平方和
a = a + int(i)**2
print(a) #打印出当次计算的平方和
if(a == 1): #当a等于1时,判断为“快乐的数字”,打印“True”
print('True')
else: #当a不等于1时,打印“False”(其实不是1就是4)
print('False')