I Love Big Numbers ! 题解
思路
因为结果的最大值为
1
×
2
×
3
×
…
2
31
−
1
1\times2\times3\times\dots 2^{31}-1
1×2×3×…231−1,显然已经超过了 unsigned long long
的最大值,所以就要考虑到用高精度。
因为 Python 自带高精度,所以 Python 是一种很好的选择。
多组数据我们可以使用下面的代码实现:
while True:
try:
# Your Code
except EOFError:
break
Python 有一个函数 factorial
,需调用 math
库。我们可以调用它。
然后定义一个函数,用于取每一位的数字,最后把每一位的数字加起来即可。
最后输出 a n s ans ans,做完了。
好水
话不多说,附上代码:
import math
def ikun(n): # 取每一位的数字
ret = 0
while n >= 1:
ret, n = ret + n % 10, n // 10
return ret
while True:
try:
n = int(input())
m = math.factorial(n)
ans = ikun(m)
print(ans)
except EOFError:
break