本帖最后由 陈昭燊 于 2015-10-18 21:51 编辑
问题描述:
利用C语言求出n!的尾数有多少个0,n可以很大,如大于10000;
分析:
0的个数是由2和5决定的(2*5=10),2的倍数币5的倍数个数多,所以n!尾数0的个数由因子5的个数决定。
如:
3000!的尾数0的个数为:
3000/5=600;
3000/25=120;
3000/125=24;
3000/625=4;
600+120+24+4=748;
所以3000!的尾数有748个0;
代码如下:
- #include <stdio.h>
- int main()
- {
- int sum=0;
- int n,N;
- scanf("%d",&n);
- N=n;
- for(n;n>5;n=n/5)
- {
- sum=sum+n/5;
- }
- printf("%d!的尾数有%d个0!\n",N,sum);
- return 0;
- }
复制代码
|
|