NYOJ - 阶乘的0
来源:互联网 发布:直播软件制作多少钱 编辑:程序博客网 时间:2024/05/01 21:52
阶乘的0
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
- 计算n!的十进制表示最后有多少个0
- 输入
- 第一行输入一个整数N表示测试数据的组数(1<=N<=100)
每组测试数据占一行,都只有一个整数M(0<=M<=10000000) - 输出
- 输出M的阶乘的十进制表示中最后0的个数
比如5!=120则最后的0的个数为1 - 样例输入
63601001024234568735373
- 样例输出
0142425358612183837
#include <stdio.h>int fact_zero(int n){if(n < 5)return 0;elsereturn n/5+fact_zero(n/5);}int main(){int n,m;scanf("%d",&n);while(n--){scanf("%d",&m);printf("%d\n",fact_zero(m));}}
这题可以根据一个结论来解决,n!的0的个数,进一步分析,可以得出考虑2和5的个数,因为,2是偶数,他是很多数的因数,所以,决定0的个数,现在只需要考虑5的个数,具体的证明如下:
假设 f(n!)表示n!的0的个数
当1 < n < 5 则f(n!) = 0
当5 <= n 则f(n!) = m+ f(m!) 其中,m = n/5
n! = (5m*5(m-1)*5(m-2)*…..*15 *10*5)*A 其中,A是不含因数是5的整数
n! =5^m*m!*A
f(n!) = m + f(m!)
以上是对公式的分析,这题已经AC了,这里提供参考。
- NYOJ - 阶乘的0
- nyoj-84-阶乘的0
- nyoj 84 阶乘的0
- nyoj 84 阶乘的0
- NYOJ 84 阶乘的0
- NYOJ 84 阶乘的0
- 阶乘的0(nyoj 84)
- Nyoj 831 阶乘的0
- NYOJ 84 阶乘的0
- NYOJ 84 阶乘的0
- NYOJ 84 阶乘的0
- nyoj--84 阶乘的0
- nyoj 84 阶乘的0
- nyoj 84 阶乘的0
- NYOJ 84 阶乘的0
- NYOJ 84 阶乘的0的个数
- NYOJ 84 阶乘的0 数论
- NYOJ 84 阶乘的0 解题报告
- 电脑在IDE模式下能正常启动,改成AHCI后蓝屏——解决方法
- 天书夜读 第二章 笔记
- ubuntu upgrade
- sql 注入
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换 .
- NYOJ - 阶乘的0
- maven 教程一 入门
- java中substring()的用法
- LeetCode : Search a 2D Matrix
- hdu2159之FATE--二维费用背包
- 窗体在任务栏显示 MFC
- json取值
- TCP/IP 第23章 TCP的保活定时器
- 总结必须时刻进行···