大数据问题

小明刚刚学习计算机编程,老师给他出了这样一道题目,但是他怎样思考,都做不出来,于是,只好请教高手的你了。

求sum = 1!+2!+3!+……+6788!+6789!的末5位。提交格式:SimCTF{}

递归深度过大,依靠这个来控制:

import sys
sys.setrecursionlimit(200000)

代码:

import sys
sys.setrecursionlimit(200000)
def digui(n):
    if n==1:
        return 1
    else:
        return n*digui(n-1)
l=[]
for i in range(1,25):
    print(str(i)+':'+str(digui(i)))
    l.append(digui(i))
print(l)
print(sum(l))

一开始,我也是傻兮兮的让他计算。后来发现不太靠谱。要好久才可以。
后来看到别人说,计算前面24个就可以啦。我便开始试试。
原来是这样的规律:
前24个:
在这里插入图片描述
前30个:
在这里插入图片描述
后面的位数就不变化啦。看来,数学好就是强大。归纳总结!

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值