美文网首页算法
2018-01-16 求阶乘尾部的0的个数

2018-01-16 求阶乘尾部的0的个数

作者: BlackChen | 来源:发表于2018-01-16 10:12 被阅读74次
  long long n = 0;
    printf("请输入一个正整数\n");
    scanf("%ld",&n);

    long long k = 0 ,s  = n;
    while(s > 0){
        s /= 5;
        k +=s;
    }
    printf("%ld 的阶乘中,末尾有%ld个'0' \n",n,k);

解析:

  • 标准(素因数)分解式
    求正整数的标准分解式的过程叫做正整数的素因数分解。
    任意整数n>1都可以唯一表示为:
    n=(p1a1)*(p2a2)……(pk^ak)
  • 尾数0分解
    尾数有几个0,就是说可以被几个 10 整除 ,也就是说可以被 几个2*5整除,因为每2个数,就能被2 整除,每5个数能被5整除,所以能被5整除的个数小于能被2整除的个数, 所以求出能被几个5 整除则可以成功求得能被几个10 整除.

使用到了阶乘的标准分解式中素因数的指数,


阶乘:
阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。

一个正整数的阶乘factorial)是所有小于及等于该数的正整数,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。

1 - 1000 的阶乘:
http://blog.csdn.net/lzmtw/article/details/1344490

相关文章

  • 2018-01-16 求阶乘尾部的0的个数

    解析: 标准(素因数)分解式求正整数的标准分解式的过程叫做正整数的素因数分解。任意整数n>1都可以唯一表示为:n=...

  • N阶乘尾部的0个数

    N阶乘尾部的0个数 描述 设计一个算法,计算出n阶乘中尾部零的个数 思路: 1、1 * 2 * 3 * ... *...

  • 2. 尾部的零

    题目:设计一个算法,计算出n阶乘中尾部零的个数(JAVA) 审题:输入:目标数n 输出:n!尾部0的数量...

  • 2、尾部的零

    题目描述 设计一个算法,计算出n阶乘中尾部零的个数 思路 n阶乘能产生尾数0,换言之就是问n阶乘能乘出多少个101...

  • java面试题之求长整数中所有0和尾数0的个数的策略《三》

    /** 求出:1000的阶乘所有零和尾部零的个数,不用阶乘。*/ 总结:①当需求的数的个数超过int和long的类...

  • LeetCode之Factorial Trailing Zero

    问题: 方法:首先想到的方法肯定是计算出阶乘,然后查尾部0的个数,但是存在大数溢出的问题。然后思考后发现尾数0的个...

  • 大整数阶乘

    给定一个数,求阶乘,然而这个数的阶乘的结果很大,只能使用 BigInteger 对象来储存

  • lintCode题解(2)

    标签(空格分隔): lintCode 题目: 尾部的零 描述: 设计一个算法,计算出n的阶乘中尾部零的个数 样例 ...

  • FCTRL - Factorial

    题目大意:求N!尾部有几个0。思路:dp,很容易想到0的个数跟2和5有关,但2的个数多,因此由5决定。设dp(n)...

  • 2018-05-14 172. Factorial Traili

    题意:给你一个数n,输出n的阶乘n!尾端0的个数。解题思路:阶乘结果末端的0是由5 * 2、5 * 4、5 * 偶...

网友评论

    本文标题:2018-01-16 求阶乘尾部的0的个数

    本文链接:https://www.haomeiwen.com/subject/plzjoxtx.html