1. 程式人生 > >【演算法】計算出n階乘中尾部零的個數

【演算法】計算出n階乘中尾部零的個數

思路:

觀察1-20階乘的結果,觀察尾數為0的分佈情況
發現有一個5就會出現一個0
其中5!(有一個5),10!(有兩個5)
5!=120(一個0)
10!=3628800(兩個0)

#include <stdio.h>

long trailingZeros(long n)
{
	long count=0;
	long temp=n/5;
	while (temp!=0) 
	{
		count+=temp;
		temp/=5;
	}
	return count;
}

void main()
{
	long n;
	printf("請輸入一個數:");
	scanf("%d",&n);
	printf("階乘有%d個零!\n",trailingZeros(n));
}