编写C语言程序求1000!后有几个零

来源:百度知道 编辑:UC知道 时间:2024/09/20 12:13:59
要的是程序不只是答案!

long fac(int n)
{
if((n==1)||(n==0))return 1;
else return n*fac(n-1);
}
main()
{
long jiecheng;
int n;
printf("pl intput n:");
scanf("%d",&n);
printf("\nResult=%ld",fac(n));
}

计算从1到1000每个数能被10整除,被5整除,被2整除的个数之和
1000!的结尾0的个数,就是:被10整除的个数+min(被5整除,被2整除的个数)
下面程序的#define TEST打开厚,可以测试n=13(13!以内的数,还可以用int来表示)以内时,程序的正确性,不过,好像也没啥好测试的

#include<stdio.h>

//#define TEST

void main()
{
int n=1000,zero,dec,five,bin,i,t;

#ifdef TEST
int fact=1;

printf("Input n:");
scanf("%d",&n);
#endif

zero=dec=five=bin=0;
for(i=1;i<=n;i++)
{
for(t=i;;)
{
if(t%10==0)
{
dec++;
t=t/10;
}
else if(t%5==0)
{
five++;
t=t/5;
}
else if(t%2==0)
{
bin++;
t=t/2;