Python练习题 047:Project Euler 020:阶乘结果各数字之和

本文介绍了ProjectEuler第20题的求解过程,即计算100的阶乘并求其所有数字之和。通过循环计算阶乘,并将结果转换为数字列表进行求和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本题来自 Project Euler 第20题:https://projecteuler.net/problem=20

'''
Project Euler: Problem 20: Factorial digit sum
n! means n × (n − 1) × ... × 3 × 2 × 1
For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800,
and the sum of the digits in the number 10! is
3 + 6 + 2 + 8 + 8 + 0 + 0 = 27.
Find the sum of the digits in the number 100!
Answer: 648
'''

n = 100
fac = 1  #初始化阶乘结果
while n >= 1:
    fac *= n
    n -= 1

# 提取出阶乘结果的每个数字,形成列表lst
lst = [int(i) for i in str(fac)]

res = 0  #初始化相加结果
for i in range(len(lst)):
    res += lst[i]
print(res)

这题也容易,让先算出阶乘100的结果,然后把这结果的每个数字相加即可。

我想,应该是要练习递归阶乘吧,但我觉得用循环也挺方便的啊,就是很讨厌递归函数,总记不住写法,唉……

转载于:https://www.cnblogs.com/iderek/p/6081645.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值