首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
阶乘末尾0的数量
[编程题]阶乘末尾0的数量
热度指数:11761
时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
给定一个非负整数 n
,返回 n!
结果的末尾为 0
的数量。
n! 是指自然数 n!
的阶乘,即 :
。
特殊的, 0 的阶乘是 1 。
数据范围:
进阶:空间复杂度
,时间复杂度
复杂度要求:
不大于
示例1
输入
3
输出
0
说明
3!=6
示例2
输入
5
输出
1
说明
5!=120
示例3
输入
1000000000
输出
249999998
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(177)
分享
提交结果有问题?
27个回答
25篇题解
开通博客
王清楚
发表于 2021-04-08 12:15:58
观察一下10以内的数字互相乘,会发现,只有 相乘会产生0,而且 ,...所以我们只需要看一下 以内 能拆出多少对 然后我们可以发现,有5因子的数比有2因子的数要少,所以我们就看能拆出来多少5就可以了,因为肯定能有足够数量的因子2来匹配。 所以阶乘末尾0的数量就是 中能拆出来的5的数量。
展开全文
月关雨辰
发表于 2021-09-11 16:42:56
因为一个数的阶乘只有是5或5的倍数乘以2的时候才会出现尾随零,并且从阶乘中可以看出来2的个数远大于5的个数,所以由此可以推得求一个数的尾随零数的个数只需看它能除以几个5就有几个零了。从算法二可以知道本质就是求可以整除5的个数,可以得到 其中[N/5]表示不大于N中对5倍的贡献一个5,[N/5/5]表
展开全文
牛客516598323号
发表于 2020-09-18 11:03:57
阶乘结果的0和乘数的2和5有关,而2的个数远多于5,所以只要数5。而5,25,125的倍数是自相似的,所以可以用递归。时间复杂度O(logN)。参考:https://blog.csdn.net/qq_36705705/article/details/106890761用例通过率: 100.00% 运
展开全文
未来0116
发表于 2021-07-28 22:55:44
一.题目描述给定一个非负整数N,返回N!结果的末尾为0的数量。N!是指自然数N的阶乘,即:二.算法(数学)因为一个数的阶乘只有是5或5的倍数乘以2的时候才会出现尾随零,并且从阶乘中可以看出来2的个数远大于5的个数,所以由此可以推得求一个数的尾随零数的个数只需看它能除以几个5就有几个零了。下面是完整代
展开全文
LifelongCode
发表于 2020-12-28 15:12:31
思路:每一对(2,5)就会产生一个0,将问题转换为:n!有多少对(2,5)进一步将问题简化为: n!拆分成的因子中有多少个5(为什么是5,不是2,是因为2出现的频率比5高)解法1:效率低,时间复杂度为N*logN public static int zeroNum1(in
展开全文
小洋芋热爱NLP
发表于 2021-08-08 15:32:44
- 题目描述:- 题目链接:https://www.nowcoder.com/practice/aa03dff18376454c9d2e359163bf44b8?tpId=196&&tqId=37136&rp=1&ru=/activity/oj&qru=/ta
展开全文
OfferCall!
发表于 2021-04-06 07:59:37
能够在尾部得出0,是由于存在局部的2*5,而在阶乘中,能够提取的2的数量一定大于5的数量,所以尾部0的数量取决于能够提取出多少个因子5,那么从1到n能提取出多少个5呢?这里有一个公式: 对于一个数N,它所包含5的个数为:N/5 + N/ + N/ + ...,其中N/5表示不大于N的数中5
展开全文
牛一霸
发表于 2021-07-25 22:26:08
题目:阶乘末尾零的数量 描述:给定一个非负整数N,返回N!结果的末尾为0的数量。 N!是指自然数N的阶乘,即:N!=1∗2∗3…(N−2)∗(N−1)∗N。 示例1:输入:3,返回值:0 说明:3!=6 示例2:输入:5,返回值:1 说明:5!=120 示例3:输入:1000000000,返回值:2
展开全文
ren卷卷
发表于 2022-02-24 16:49:45
public class Solution { /** * the number of 0 * @param n long长整型 the number * @return long长整型 */ public long thenumberof0
展开全文
有名
发表于 2021-07-27 12:23:16
题目 描述 给定一个非负整数 NN,返回 N!N! 结果的末尾为 00 的数量。N!N! 是指自然数 NN 的阶乘,即:。 方法一 思路 题目要求计算阶乘末尾0的数量,最直接的方法就是通过计算n!,得出其值,然后在逐个的找出末尾的0,得出末尾0的数量; 考虑到N的范围比较大,使用long会溢出,所
展开全文
问题信息
基础数学
难度:
27条回答
177收藏
3268浏览
热门推荐
通过挑战的用户
查看代码
陆十四
2022-10-11 22:36:57
在记录秋招的茶...
2022-09-16 09:16:54
xxdev
2022-09-15 23:49:09
Tommyle...
2022-09-15 21:36:53
ariou
2022-09-14 22:31:12
相关试题
车站建造问题
基础数学
评论
(40)
线段树编号问题
基础数学
评论
(2)
牛牛的超市
动态规划
基础数学
评论
(5)
编程题 ,按照要求创建Java 应...
Java
评论
(1)
市场与销售的区别在哪里?
市场营销
评论
(1)
阶乘末尾0的数量
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * the number of 0 * @param n long长整型 the number * @return long长整型 */ public long thenumberof0 (long n) { // write code here } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * the number of 0 * @param n long长整型 the number * @return long长整型 */ long long thenumberof0(long long n) { // write code here } };
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # the number of 0 # @param n long长整型 the number # @return long长整型 # class Solution: def thenumberof0(self , n ): # write code here
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * the number of 0 * @param n long长整型 the number * @return long长整型 */ public long thenumberof0 (long n) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * the number of 0 * @param n long长整型 the number * @return long长整型 */ function thenumberof0( n ) { // write code here } module.exports = { thenumberof0 : thenumberof0 };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # the number of 0 # @param n long长整型 the number # @return long长整型 # class Solution: def thenumberof0(self , n: int) -> int: # write code here
package main import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * the number of 0 * @param n long长整型 the number * @return long长整型 */ func thenumberof0( n int64 ) int64 { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * the number of 0 * @param n long长整型 the number * @return long长整型 */ long long thenumberof0(long long n ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # the number of 0 # @param n long长整型 the number # @return long长整型 # class Solution def thenumberof0(n) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * the number of 0 * @param n long长整型 the number * @return long长整型 */ def thenumberof0(n: Long): Long = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * the number of 0 * @param n long长整型 the number * @return long长整型 */ fun thenumberof0(n: Long): Long { // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * the number of 0 * @param n long长整型 the number * @return long长整型 */ public long thenumberof0 (long n) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * the number of 0 * @param n long长整型 the number * @return long长整型 */ export function thenumberof0(n: number): number { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * the number of 0 * @param n long长整型 the number * @return long长整型 */ func thenumberof0 ( _ n: Int64) -> Int64 { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * the number of 0 * @param n long长整型 the number * @return long长整型 */ pub fn thenumberof0(&self, n: i64) -> i64 { // write code here } }
3
0
5
1
1000000000
249999998