2013年12月19 -算法: 0的个数为 n/5+n/25+n/125+n/(5^i)'''求一个数的阶乘末尾有多少个0要求:大于或等于0小于10000的整数2.输入非数字或者超过范围,则退出程序用例:输入 输出'5' '5! have 1 zero''e' 'e is not a number''10000' '10
2013年12月19 -
算法: 0的个数为 n/5+n/25+n/125+n/(5^i)
''' 求一个数的阶乘末尾有多少个0
要求:大于或等于0小于10000的整数
2.输入非数字或者超过范围,则退出程序
用例:
输入 输出
'5' '5! have 1 zero'
'e' 'e is not a number'
'
2017年11月18 -
问题描述:比如145=1!+4!+5!这样,1400就没有合适的阶乘数的和相加表示。
思考:简单的回溯即可,取该数或者不取该数,不可重复。我事先先存储了前50个数的阶乘。
#include using namespace std;
int jiecheng(int num)
{
if (num == 0)
return 0;
2016年09月23 -思路:能产生0的质数组合只有2*5,然后问题就转变成了对N!进行质数分解后,一共有几个5,因为2的个数显然多于5。比如计算25!的末尾0的个数,包含5的数有5,10,15,20,25,其中25中包含两个5,所以一共包含6个5,25!的末尾有6个0.public static void main(String[] args) {// TODO Auto-generated method stub
2016年11月07 -
昨天校赛有一道题,是求一个数的阶乘,末尾有几个零。当时是没有做出来的。今天网上看了下,明白了原理。其实很多人都写过了,自己之所以再写,一是为了加强自己的理解,二是有的地方或许可以写得更详细,也写出自己思考的一些误区。 回到题目本身,求一个数的阶乘,末尾有几个零 。 最容易想到的就是,(设这个数为n),求出n!,然后找出末尾有几个零。但,一旦n的值大了,就会溢出。
这里有一个更简
2018年05月12 -l4y58s3eie崭暇粘悍牢躺一纤灰谟《
http://weibo.com/p/230927987864816007778304》
suuo44xc2o致贪蔽蔡胖呐繁驳贸嘏《
http://wei
2013年07月18 -#include
int main(void)
{
while(1)
{
intn,f=1,i;
pr
2017年04月10 -
这里先给出其计算公式,后面给出推导过程。
令f(x)表示正整数x末尾所含有的“0”的个数,则有:
当0 < n < 5时,f(n!) = 0;
当n >= 5时,f(n!) = k + f(k!), 其中 k = n / 5(取整)。
计算举例f(5!) = 1 + f(1!) = 1f(10!) = 2 + f(2!) = 2f(20
2016年07月20 - #includeusing namespace std;//给定一个整数N,那么N的阶乘末尾有几个0?N=10,N!=3628800,末尾有2个0//1.如果我们从“哪些数相乘能得到 10”这个角度来考虑,问题就变得简单了。//首先考虑,如果 N!= K×10M,且 K 不能被 10 整除,那么 N!末尾有 M 个 0。再考虑//对 N!进行质因数分解,
2017年07月26 - 题目:求一个数的阶乘后末尾0的个数例如:10!的阶乘结果是3628800,末尾有2个0,则输出2解析:一个一个求解,求解每个数包含5的个数。当然不能每次加1,而是每次加5。 public static int coutZero(int n){ int num = 0; int i,j; for (i = 5;i <= n;i +