阶乘末尾0的个数

来源:互联网 发布:c语言中thread.sleep 编辑:程序博客网 时间:2024/04/29 06:48
//当然算法,还可以优化,就是求5因子的个数,因为2因子的个数明显多于5.
void GetBytes(int num,int& byteNum2,int& byteNum5){    byteNum2 =0;    byteNum5 =0;    int iTempNum = num;    while(num)    {        if(num % 2 ==0)        {            byteNum2++;        }           num = num /2;    }    num = iTempNum;     while(num)    {        if(num % 5 ==0)        {            byteNum5++;        }           num = num /5;    }   }    int main(){    int b =0;    int iTempNum2 =0;    int iTempNum5 =0;    while(cin>>b)    {            int num2 =0;            int num5 =0;        for(int i =1;i<=b;i++)        {            GetBytes(i,iTempNum2,iTempNum5);            num2 += iTempNum2;            num5 += iTempNum5;        }            cout<<(num2 <= num5 ? num2:num5)<<endl;    }   
}

 
原创粉丝点击