求:1000!值末尾的连续0的个数

来源:百度知道 编辑:UC知道 时间:2024/05/04 07:25:23
加急!
我是初学者,只限用循环、数组、if、case语句;尽量完整;有解释:(我比较比笨啦)

连续以求10的余数,如果余数是0,则记数,否则退出
假设某值为t
int c=0;
while(!t%10){t/=10;c++;}

1000!阶乘统计时要动态统计了
1*2*3*4*...,见末尾0就除10
但是1000!的值即使去掉末尾的0也太大,除非用一些非常规手段,否则无法运算
______________________________
楼上的解法有道理

竟然有人说无法运算??????
说了吗,最有249个0
看我来:
#include<stdio.h>
void main()
{ long a,b=1,nmber=3;
for(a=1;a<1000;a++)
{ b=b*a;
if(b%100==0)
{ nmber=nmber+2;
b=b/100;
}
else
if(b%10==0)
{ nmber++;
b=b/10;
}
b=b%1000;/*因为后面的0是只有与除0以外的最低位相关*/
}
printf("the 0 have:%d",nmber);
getch();
}
先想错了一个地方,现在对了

1000!不简单哦!!看看这个吧!!
http://www.yzfy.org/bbs/viewthread.php?tid=23&extra=page%3D1

1000!值末尾的连续0的个