n!最后连续0的个数

    技术2026-08-20  17

    任何一个整数都可以写成质因数成绩的形式:

    10 = 2 * 5

    21 = 3 * 7

    23 = 1 * 23

    。。。

     

    所以n! = 2^n1 * 3^n2 * 5^n3 *.....

    其中有可能在最后产生0的,只有2 和 5相乘了,因为n1 远大于 n3,所以n3的大小就是n!最后0的个数

     

    求n3的方法:

     

    int ret = 0;

     

    while (N > 0)

    {

          ret += N / 5;

          N /= 5;

    }

     

    return ret;

    最新回复(0)