100!有多少个末尾零

Posted on 2020-07-20 21:34  黑炽  阅读(325)  评论(0编辑  收藏  举报
#include<stdio.h>
/*
分析100!结果值得末尾产生零的条件
可以得到:一个整数若含有一个因子5,则必然会在求100!时产生一个零。
因此问题转化为求1到100这100个整数中包含了多少个因子5。
因为一个数的阶乘,小于这个数的所有整数中分解出来的
5的个数肯定比2少,那么5*2得到一个0,所以只需要统计5的个数
*/
int main(void){
    int count = 0, i;

    for (i = 5; i <= 100; i += 5){
        count++;
        if (!(i % 25)) count++;//若为25的倍数,计数器再加1,因为25=5*5
    }

    printf("100!的值的尾数中0的个数为:%d\n", count);

    return 0;
}