写这篇随笔的原因是对博客http://blog.csdn.net/liming0931/article/details/7766861一文中的源码改进:
1 int getfn_1(
const int n)
2 {
3 int counter=
0;
//the counter!
4 int flag=
n;
5 while(flag)
6 {
7 flag/=
5;
8 counter+=
flag;
9 }
10 return counter;
11 }
12
13 int main(
void)
14 {
15 ///int ret;
16 int fact_n =
100;
17
18 printf(
"100!有%d个零\n",getfn_1(fact_n));
19
20 return 0;
21 }
完毕,既然知道了求解一个数 n 的阶乘末尾有多少个 0 取决于从 1 到 n 的各个数的因子中 2 和 5 的个数,而且得到因子 5 的个数的方法是用 n 不断除以 5, 直到结果为 0, 然后把中间得到的结果累加,那么就直接根据这个算法编程即可,省去了笨拙的循环过程。
转载于:https://www.cnblogs.com/Gihub/p/3825089.html
相关资源:数据结构—成绩单生成器