题解 2187: 阶乘新问题

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

C语言dp动态规划算法解阶乘新问题(但会遇到运行错误,只是分享思路,寻求题解可绕过)

在思考老师的解法时,突然产生个了新灵感。不过目前这个代码会遇到运行错误,但是在自己的软件中运行并没有问题,也不清楚哪出错了。等我发现并改正错误后会直接回来修改这个题解。(现在解决了,问题的答案是无解,除非改变思路,具体错误原因在下文)正常做法肯定会面临时间超限或者数据溢出,所以只能找规律。
优质题解

阶乘新问题 O(n)解法

摘要:解题思路: 阶乘的结果有0,只能是5和偶数2,4,6,8。。相乘产生,即有一个5则必有一个0。最后有多少个0化为计数有多少个5的问题。5以上的数字阶乘,逢5则多一个0,于是可以5为步长计数。若采用累加……

C语言解阶乘新问题,简单易理解,同时分享其他失败的思路

#成功的解法:又是想了一晚上的一道题,看似简单,但细节很多。尝试了几种方法,但不是时间超限,就是数据溢出,最终用此方法成功了。失败但理论可行的思路放在代码之后。正常做法肯定会面临时间超限或者数据溢出,所以只能找规律。会在末尾出现0,只可能是在相乘时出现了10的倍数,本质也就是找出现10的倍数的次数。
优质题解

2187: 阶乘新问题

摘要:解题思路:末尾的0都是由2和5相乘得到的,举几个例子:  40=2^3*5^1 只有一个5和2对应,所以只有一个0500=2^2*5^3 只有两个2和5对应,所以只有两个0也就是说,末尾的0的个数就是……

阶乘新问题-题解(C语言代码)

这题的原理其实看阶乘的答案,就能看出一些规律。就是0的出现和多少,与5和5的倍数有密切关系。1!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=362880011!=3991680012!=47900160013!=622702080014
优质题解

阶乘新问题-题解(C语言代码)

##一、基本思想:本题阶乘的结果末尾产生0的条件是因子2和因子5相乘,由于阶乘展开式中因子2的个数一定会比因子5多,所以只需要计算因子5的个数即可得到阶乘结果末尾0的个数。##二、解题步骤:1.编写一个子函数,其功能为计算出1~n中每个数的因子5的最大个数。

阶乘新问题-题解(C++代码)

#问题分析要求得末尾为0的个数,就要先分析一下末尾的0是怎么产生的,末尾的0肯定是由2和5产生的,一对2,5相乘产生10,这样末尾就有一个0了。按照常识,一个数中5的个数肯定是要少于2的个数,那么我们只需要求5的个数就好了。这么整个问题就变为在N!中求5的个数就行了。