nyoj84 阶乘的0
来源:互联网 发布:ubuntu安装桌面教程 编辑:程序博客网 时间:2024/05/02 04:48
阶乘的0
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
- 计算n!的十进制表示最后有多少个0
- 输入
- 第一行输入一个整数N表示测试数据的组数(1<=N<=100)
每组测试数据占一行,都只有一个整数M(0<=M<=10000000) - 输出
- 输出M的阶乘的十进制表示中最后0的个数
比如5!=120则最后的0的个数为1 - 样例输入
63601001024234568735373
- 样例输出
0142425358612183837
解题思路:因为在质数中,只有2和5相乘才会在尾部出现一个"0",那么只要将m分解质因数,然后统计2和5的个数,其中较小的一个就是答案。
进一步来说,m分解质因数之后,2的个数绝对比5多,
那么问题进一步简化,只要统计出所有的质因数中有多少个5即可。例如:
1-->100中5的倍数
有 5 ,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100.
20 个5
但是除以5后还有可分解为5的
5 10 15 20
此时有4个5
就是说1-->100共有24个5;即所求的0的个数
代码运用递归求5的个数:如下:
#include <stdio.h>int Count=0;//计数int factorial(int m){if(m==0) return Count;else{Count+=m/5;return factorial(m/5);}}int main(){int m;int n;scanf("%d",&n);while(n--){Count=0;scanf("%d",&m);printf("%d\n",factorial(m));//递归操作实现}return 0;}
0 0
- nyoj84 阶乘的0
- nyoj84阶乘的0
- NYOJ84阶乘的0
- nyoj84阶乘的0(数学)
- NYOJ84(阶乘的0)(数学题)
- NYOJ84
- 阶乘末尾的0
- 阶乘的0
- NYOJ - 阶乘的0
- 阶乘0的个数
- 84 阶乘的0
- NYIST 阶乘的0
- 阶乘的0
- 阶乘的0
- 阶乘尾部的0
- 阶乘的0
- 阶乘的0
- 阶乘的0
- PAT 1083. List Grades(25)
- 第8周项目6-计算本月天数
- const指针总结
- 【iOS开发-52】如果要模仿练习,如何找到其他应用程序的icon、使用框架等资源?
- spring 一定要注意bean 类的大小写规范,不然你会郁闷的很惨
- nyoj84 阶乘的0
- drawable不同目录你会怎么选择(Android)
- 要进行写的某个文件夹拒绝访问的问题
- @Transactional事务不起作用的解决
- JS限制Textarea文本域字符个数
- QQ状态栏显示消息效果
- NanShan开发者一定要写的日志
- 5.1.2 认识值和数据
- 3.5mm接口定义