1.阶乘数字和

n!=n*(n-1)*……1

例如:10!=10X9X8X7X6X5X4X3X2X1=3628800

所以10!的阶乘数字和为3+6+2+8+8+0+0=27

求100!的阶乘数字和

 

---------python--------------

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__author__ = lanzili
__mtime__ = '2017/10/17'
# code is far away from bugs with the god animal protecting
    I love animals. They taste delicious.
             ┏┓   ┏┓
            ┏┛┻━━━┛┻┓
            ┃ ┳┛  ┗┳ ┃
            ┃   ┻    ┃
            ┗━┓    ┏━┛
              ┃    ┗━━━┓
神兽保佑 ┣┓
永无BUG┏┛
              ┗┓┓┏━┳┓┏┛
               ┃┫┫ ┃┫┫
               ┗┻┛ ┗┻┛
"""
import math
import time
start=time.clock()
string=str(math.factorial(100))
sum=0
for i in string:
    sum+=int(i)

end=time.clock()
print(sum)
print(end-start)

 

小技巧在于将big int 转化为字符串这样一个迭代器,然后可以通过for循环累加来得到结果

转载于:https://my.oschina.net/u/3641281/blog/1552628

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值