Python练习题 047:Project Euler 020:阶乘结果各数字之和
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python练习题 047:Project Euler 020:阶乘结果各数字之和相关的知识,希望对你有一定的参考价值。
本题来自 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的结果,然后把这结果的每个数字相加即可。
我想,应该是要练习递归阶乘吧,但我觉得用循环也挺方便的啊,就是很讨厌递归函数,总记不住写法,唉……
以上是关于Python练习题 047:Project Euler 020:阶乘结果各数字之和的主要内容,如果未能解决你的问题,请参考以下文章
Python练习题 043:Project Euler 015:方格路径
Python练习题 041:Project Euler 013:求和取前10位数值
Python练习题 042:Project Euler 014:最长的考拉兹序列
Python练习题 038:Project Euler 010:两百万以内所有素数之和