LintCode 尾部的零

设计一个算法,计算出n阶乘中尾部零的个数

样例

11! = 39916800,因此应该返回 2

分析:0的个数=5的倍数+5^2的倍数+5^3的倍数+5^4的倍数+5^5的倍数+……

class Solution {
 public:
    // param n : description of n
    // return: description of return
    long long trailingZeros(long long n) {
        long count=0;//一定是long~~~~
        for(int i=1;pow(5,i)<=n;i++)
              count+=n/(long)pow(5,i);
             return count;

    }
};

  

时间: 2024-10-12 21:16:07

LintCode 尾部的零的相关文章

LintCode 2. 尾部的零

题目:设计一个算法,计算出n阶乘中尾部零的个数. 样例 11! = 39916800,因此应该返回 2 挑战 O(logN)的时间复杂度. 解:2*5=10;可当n!展开,观察得2的个数肯定比5的个数多,所以只需统计n!中5的个数即可知尾0的个数. class Solution { public: /* * @param n: A long integer * @return: An integer, denote the number of trailing zeros in n! */ lo

2. 尾部的零【简单】

设计一个算法,计算出n阶乘中尾部零的个数. 思路:0的个数取决于5因子的个数,5的一次方对答案贡献一个0,5的平方贡献两个0,5的三次方贡献3个0......以此类推. 代码: class Solution { public: /* * @param n: A long integer * @return: An integer, denote the number of trailing zeros in n! */ long long trailingZeros(long long n) {

2.尾部的零

题目要求出阶乘尾部后有多少个0,其实就是问阶乘里面有多少个10.所以这个问题也就可以等效于问表示阶乘这个数的质因数分解总共有多少个2与5,而2的个数肯定比5的个数多,所以我们只需要求出有多少个5就行了.而质因数分解一个数里有多少个5可以用公式:\(n/5+n/5/5+n/5/5/5+--\)来进行计算. 很多博客都介绍了这种算法,但是没有讲解具体的计算原理(或许是因为有些简单).这里,我们假设要求1到100里质因数分解后5的个数,首先肯定是先找5的倍数,即5,10,15,20,25--.注意到它

LintCode之移动零

题目描述: 分析:由于要使非零元素保持原数组的顺序,我只能想出在找到一个0时,逐个移动数组元素使得后一个元素覆盖前一个元素,再将这个0移到后头去. 我的代码: 1 public class Solution { 2 /* 3 * @param nums: an integer array 4 * @return: 5 */ 6 public void moveZeroes(int[] nums) { 7 // write your code here 8 //当数组为空时直接返回 9 if(nu

LintCode 刷题记录

1. A + B 问题:给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符. 思路:使用^来求当前位置上的值,用&来求每个位置上的进位,进位向前移动一位后继续循环,直到进位为0. class Solution { public: /* * @param a: The first integer * @param b: The second integer * @return: The sum of a and b */ int aplusb(int a, int b) { // w

2017校招常考算法题归纳&amp;典型题目汇总

2017校招即将来临,我们为大家整理了2017校招的常考算法类型,以及对应的典型题目. 另附参考答案地址:http://www.jiuzhang.com/solution/ 数学 尾部的零 斐波纳契数列 x的平方根 x的平方根 2 大整数乘法 骰子求和 最多有多少个点在一条直线上 超级丑数 比特位操作 将整数A转换为B 更新二进制位 二进制表示 O(1)时间检测2的幂次 二进制中有多少个1 动态规划 编辑距离 正则表达式匹配 交叉字符串 乘积最大子序列 二叉树中的最大路径和 不同的路径 通配符匹

leetcode:Factorial Trailing Zeroes

Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in logarithmic time complexity. 分析:题意即为 阶乘尾部的零(求n!中尾部为0的个数) 思路:我们可以对n!进行质因数分解有 n!=2x*3y*5z*...,显然尾部0的个数等于min(x,z),并且我们容易知道min(x,z)==z 因为:阶乘就是1*2*3*...*n如果我们

OC基础回顾(十四)文件加载与保存

Cocoa提供两个处理文件的通用类:属性列表和对象编码. 1.属性列表 在Cocoa中,有一个类名为属性列表(property list)的对象,通常简写为plist.这些列表包含 Cocoa知道如何操作的一组对象.具体来讲,Cocoa知道如何将它们保存到文件中并进行加载.属性列表类包括NSArray.NSDictionary.NSString.NSNumber.NSDate和NSData,以及它们的可修改形态变体(只要它们拥有前缀为Mutable的类). 1.1 NSDate NSDate是C

fprintf函数

描述 C 库函数 int fprintf(FILE *stream, const char *format, ...) 发送格式化输出到流 stream 中. 声明 下面是 fprintf() 函数的声明. int fprintf(FILE *stream, const char *format, ...) 参数 stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流. format -- 这是 C 字符串,包含了要被写入到流 stream 中的文本.它可以包含嵌入的 f