参加笔试遇到计算1000!后又几个零代码记不太清楚了,大致如下,是个填写缺省代码题public int count(int num)
{
     int count;
     int face=5;
     while(face<=num){
     
        count+=语句1 ;
        face=face*5;
     
    }
    return count;}

解决方案 »

  1.   

    楼上正解。
    对于1~1000之间的任意数x,这个x只要有一个5这个因子,阶乘的结果就会产生一位0,有两个5的因子就会产生两个0。所以求一下所有的数中含因子5的个数之和就可以了。
    含一个因子5的数有5,10,15,20,25,30......(这些数会产生至少1位0)
    含两个因子5的数有25,50,75,100,........  (这些数会产生至少2位0)
    含三个因子5的数有125,250,375,500....   (这些数会产生至少3位0)
    ..
    这些数的个数及所求。