阶乘末尾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; }
}