阶乘(factorial)(分块)

该博客介绍了如何使用分块技术解决阶乘计算问题,通过一道牛客网的题目来实践这一方法。虽然分了1000个块,但实际上只需要10个块就能完成计算。
摘要由CSDN通过智能技术生成

链接:https://www.nowcoder.com/acm/contest/135/D
来源:牛客网
 

题目描述

输入描述:

输入数据共一行,一个正整数n,意义如“问题描述”。

输出描述:

输出一行描述答案:

一个正整数k,表示S的末尾有k个0

 

示例1

输入

复制

10

输出

复制

7

说明

 

之前学习过分块,刚好用这道题试一下。

不过分的有点多了,分了1000个块,其实10个块就能过。

代码:

#include<bits/stdc++.h>

const int maxn=1e8+10;
#define ll long long
ll kuai[1110]={0,1249668749,4999296873,11248887498,19998459374,31248093749,44997693748,61247253122,79996812499,101246418748,124995984373,151245521873,179995062498,211244637498,244994174997,281243687498,319993209373,361242753122,404992262498,451241753122,499991296874,551240912498,604990499998,661240059373,719989637498,781239218749,844988787498,911238315622,979987871873,1051237434373,1124986968748,1201236468747,1279986003122,1361235543748,1444985049997,1531234515622,1619984037498,1711233549997,1804983024997,1901232462496,1999982062499,2101231646873,2204981190622,2311230703124,2419980293748,2531229843748,2644979359372,2761228859373,2879978418748,3001227940622,3124977421873,3251226912498,3379976440622,3511225931247,3644975393747,3781224859373,3919974359372,4061223818746,4204973259372,4351222746873,4499972312498,4651221849998,4804971362497,4961220887498,5119970424997,5281219937498,5444969421872,5611218924997,5779968434373,5951217924997,6124967374997,6301216859372,6479966346872,6661215806247,6844965228121,7031214687498,7219964156247,7411213584371,7604962974996,7801212512498,7999962046873,8201211546872,8404961006246,8611210543748,8819960049997,9031209515622,9244958959373,9461208471872,9679957946872,9901207384371,10124956812498,10351206296872,10579955740621,10811205149997,11044954565622,11281204015622,11519953431246,11761202818746,12004952281249,12251201903123,12499951484374,12751201053123,13004950624998,13261200215623,13519949778123,13781199312498,14044948865623,14311198424997,14579947965623,14851197471872,15124946999998,15401196537498,15679946049997,15961195524997,16244945034372,16531194546873,16819944031247,17111193474996,17404943046874,17701192637498,17999942187498,18301191703122,18604941281248,18911190840623,19219940362497,19531189843749,19844939412498,20161188940622,20479938431247,20801187903123,21124937437498,21451186937497,21779936396871,22111185856248,22444935362497,22781184828122,23119934265622,23461183734373,23804933309373,24151182846872,24499932359373,24851181881248,25204931424997,25561180934373,25919930424997,26281179921873,26644929437497,27011178924997,27379928384372,27751177862497,28124927343748,28501176812497,28879926240621,29261175696872,29644925159372,30031174593747,30419923993746,30811173503122,31204923043748,31601172549997,31999922015622,32401171537498,32804921049997,33211170524997,3361
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值