就是按部就班的遍历
最后字典方式排序输出,就是将每一个数字都转换为字符串,然后排序输出
answer_list = []
# 需要一个求阶乘的函数
def func(number):
if number == 0 or number == 1:
return 1
else:
return number * func(number - 1)
# 先得到所有的亲和数
for i in range(1, 100001):
number = i # 先将这个数保存起来
fib_sum = 0 # 存储数的各个位数的阶乘之和
while number > 0:
get_last = number % 10 # 获取当前的数的最后一位
fib_sum += func(get_last) # 当前位置的数的阶乘加到当前sum中
number = number // 10 # 规模减小
if fib_sum == i: #是亲和数
answer_list.append(i) # 将这个数加入到结果数组
# print(answer_list) 可以正确的打印
# 下面解决用字典的方式进行打印输出
answer_list = list(str(number) for number in answer_list) # 将结果数字全部转换成为字符串
answer_list.sort() # 这样排序的时候就会使用字典法排序
for number in answer_list:
print(number, end = " ")
0.0分
0 人评分