首页 > 其他分享 >LeetCode/阶乘后的零

LeetCode/阶乘后的零

时间:2022-08-28 00:45:37浏览次数:49  
标签:int 求质 mid long ans 阶乘 LeetCode

1. 返回尾零数量

可以转换为求质因子为2和5数量的较小值,实际上就是求质因子为5的数量

class Solution {
public:
    int trailingZeroes(int n) {
        int ans = 0;
        for (int i = 5; i <= n; i += 5) //遍历所有含质因子5的数
            for (int x = i; x % 5 == 0; x /= 5) //计算该数有几个为5的质因子
                ++ans;
        return ans;
    }
};
//优化写法
class Solution {
public:
    int trailingZeroes(int n) {
        int ans = 0;
        while (n) {
            n /= 5;//累求质因子为5的k次方的数
            ans += n;
        }
        return ans;
    }
};

2. 求满足阶乘尾零为k数的个数

int preimageSizeFZF(int k) {
    return help(k + 1) - help(k);//使得尾零恰为k+1的整数减去使得尾零恰为k的整数
}
long long help(int k) {//二分查找
    long long r = 5LL * k;//二分上界
    long long l = 0;//二分下界
    while (l < r) {
        long long mid = (l + r) / 2;
        if (zeta(mid) < k) //尾零少于目标值
            l = mid + 1;//移动左边界
        else r = mid;//移动右边界,找第一个满足条件值(也就是满足条件的区间左边界)
    }
    return r ;
}

标签:int,求质,mid,long,ans,阶乘,LeetCode
From: https://www.cnblogs.com/929code/p/16631868.html

相关文章

  • 【重要】LeetCode 662. 二叉树最大宽度
    题目链接注意事项根据满二叉树的节点编号规则:若根节点编号为u,则其左子节点编号为u<<1,其右节点编号为u<<1|1。一个朴素的想法是:我们在DFS过程中使用两个哈希表......
  • leetcode 647. Palindromic Substrings回文子串(中等)
    一、题目大意给你一个字符串s,请你统计并返回这个字符串中回文子串的数目。回文字符串是正着读和倒过来读一样的字符串。子字符串是字符串中的由连续字符组成的一......
  • leetcode139:单词拆分
    packagecom.mxnet;importjava.util.HashSet;importjava.util.List;publicclassSolution139{publicstaticvoidmain(String[]args){}/**......
  • LeetCode刷题23-在排序数组中查找元素的第一个和最后一个位置
    importjava.util.Arrays;/***功能描述**@authorASUS*@version1.0*@Date2022/8/27*/publicclassMain06{publicstaticvoidmain(String[]......
  • leetcode169:多数元素
    packagecom.mxnet;importjava.util.HashMap;importjava.util.Set;publicclassSolution169{publicstaticvoidmain(String[]args){}/**......
  • [Oracle] LeetCode 348 Design Tic-Tac-Toe
    Assumethefollowingrulesareforthetic-tac-toegameonannxnboardbetweentwoplayers:Amoveisguaranteedtobevalidandisplacedonanemptybloc......
  • 动态规划——leetcode5、最长回文子串
    1、题目描述:2、解题方法:动态规划动态规划解题步骤:1、确定状态最后一步:如果s[i,...,j]是回文子串,那么需要满足两个条件①s[i......
  • LeetCode 20. 有效的括号
    题目题目链接:https://leetcode.cn/problems/valid-parentheses/给定一个只包括'(',')','{','}','[',']' 的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相......
  • leetcode143-重排链表
    重排链表快慢指针+翻转链表通过快慢指针找到中间节点,然后将后半段进行翻转,然后与前半段进行拼接。classSolution{publicvoidreorderList(ListNodehead){......
  • LeetCode 150. 逆波兰表达式求值
    思路:当字符串为运算符号是弹出栈中两个数字进行运算stoi("1")将string转换为intclassSolution{public:intevalRPN(vector<string>&tokens){stack<......