#!/sur/bin/nve python
# coding: utf-8
# coding: utf-8
daffodil_s = '''
水仙花数
定义:
(限定于三位数)
每位上的数的三次幂之和等于这个数本身
'''
def find_daffodil(nums):
daffodils = [] #初始 daffodil 列表为空。
for daffodil in nums: #遍历数组
sum = 0 #初始 daffodil 数位三次幂和变量。
for num in map(int, list(str(daffodil))):
#用 map 把三位数解析成数位列表并遍历求和。
sum += num**3
if sum == daffodil: #收集 daffodil number
。
daffodils.append(daffodil)
return daffodils #返回 daffodil number 列表。
#调用 find_daffodil 查找 100 ~ 999 中的 daffodil number 并打印输出。
print(f'\n\n\n{" 查找水仙花数 ":_^44}\
\n\n{"":.^50}\
\n{daffodil_s}\
\n{"."*50}\
\n\n\n{"100 ~ 999 中的“水仙花数:"}{find_daffodil(range(100, 1000))}\
\n\n\n{" The end ":_^50}\n')
#也可以用解析成数位立方列表求和。
def find_daffodil(nums):
daffodils = [] #初始 daffodil 列表为空。
for daffodil in nums: #遍历数组
sum_num = sum(num**3 for num in map(int, list(str(daffodil))))
#用 map 把三位数解析成数位列表, 再解析成立方列表,直接用 sum 求和。 if sum_num == daffodil: #收集 daffodil num
ber 。
daffodils.append(daffodil)
return daffodils #返回 daffodil number 列表。
上一篇: 代码彩打喜报
下一篇: 练习:完数
来源:老齐教室