洛谷 P1134 阶乘问题
来源:互联网 发布:淘宝曼哈顿直通车真假 编辑:程序博客网 时间:2024/06/01 09:23
题目概述
给出n,求n!最右边第一位的非0数。
解题思路
对于一个数的阶乘,末尾的0只会以2*5的形式产生。而1到n中因数2的数量远远大于5,因此我们可以通过找因数5的方式来滤掉末尾的0;
这里还有另一个规律:除去0!和1!,本题的答案只可能是2,4,6,8。这4个数乘上末位是6的数,结果还是自己,因此可以将这种情况省略。
时间复杂度:O(n)
空间复杂度:O(1)
源程序
vari,n,t:longint;
ans:int64;
begin
read(n);
ans:=1;
for i:=2 to n do
begin
if i mod 10=6 then continue;
t:=i;
while t mod 5=0 do
begin
t:=t div 5;
ans:=ans shr 1;
end;
ans:=ans*t;
if ans>100000000000 then ans:=ans mod 100000000000;
end;
write(ans mod 10);
end.
0 0
- 洛谷 P1134 阶乘问题
- 洛谷 P1134 阶乘问题
- 洛谷 P1134 阶乘问题
- 洛谷 P1134 阶乘问题
- 洛谷 P1134 阶乘问题
- 洛谷 P1134 阶乘问题
- 阶乘问题 洛谷p1134
- 洛谷 P1134 阶乘问题
- 【数论】洛谷 P1134 阶乘问题
- P1134阶乘问题
- P1134 阶乘问题
- [P1134]阶乘问题
- P1134 阶乘问题
- 洛谷 阶乘问题
- 阶乘问题!
- 阶乘问题
- 阶乘问题//
- 阶乘问题
- CSS3 选择器
- 1095. Cars on Campus (30)
- Android绘图系列(一)——自定义View基础
- Apache安装冲突
- uoj 279: 数据分块鸡 动态规划+可持久化线段树
- 洛谷 P1134 阶乘问题
- 编写一个程序,获取10个1-20的随机数,要求随机数不能重复
- register all media file container muxers in ffmpeg
- 【c++】类模板
- web架构网站演变过程
- JavaScript之函数
- C#关于类(2)
- 欧拉函数的求法
- java异常匹配原则