Python 判断数字是否为"快乐数"
快乐数是指一个数字,将其每个位上的数字平方后相加,得到一个新的数字,重复这个过程直到最后结果为1,或者进入一个不包含1的循环。如果最终结果为1,则这个数字就是快乐数。
实例
def is_happy_number(n):
def get_next(number):
return sum(int(char) ** 2 for char in str(number))
seen = set()
while n != 1 and n not in seen:
seen.add(n)
n = get_next(n)
return n == 1
# 测试
print(is_happy_number(19)) # 输出 True
print(is_happy_number(20)) # 输出 False
def get_next(number):
return sum(int(char) ** 2 for char in str(number))
seen = set()
while n != 1 and n not in seen:
seen.add(n)
n = get_next(n)
return n == 1
# 测试
print(is_happy_number(19)) # 输出 True
print(is_happy_number(20)) # 输出 False
代码解析:
is_happy_number
函数用于判断一个数字是否为快乐数。get_next
函数用于计算一个数字的每个位上的数字平方和。seen
集合用于记录已经出现过的数字,以防止进入无限循环。- 在
while
循环中,不断计算下一个数字,直到结果为1或者进入循环。 - 最后返回
n == 1
,如果结果为1则返回True
,否则返回False
。
输出结果:
True False
点我分享笔记