解题思路:一个整数若含有一个因子5,则必然会在求N!时产生一个零(因子2的个数远多于因子5的个数,可不考虑)。因此问题转化为求1到N这N个整数中 包含了多少个因子5。若整数M能被5整除,则M包含1个因子5;若整数num能被25整除,则num包含2个因子5;若整数num能被125整除,则M包 含3个因子5......
#include<stdio.h>
void main()
{
while(1)
{
printf("Please enter an integer:");
int n;
scanf("%d",&n);
int count=0; //记录5的个数
for(int i=5;i<=n;i+=5)
{
int num=i;
while((num%5)==0) //能够被5整除的情况
{
count++; //能够被5整除,计数加1
num=num/5; //继续分解
}
}
printf("The number of 0 in the end of %d! is %d./n",n,count);
}
}
#include<stdio.h>
void main()
{
while(1)
{
printf("Please enter an integer:");
int n;
scanf("%d",&n);
int count=0; //记录5的个数
for(int i=5;i<=n;i+=5)
{
int num=i;
while((num%5)==0) //能够被5整除的情况
{
count++; //能够被5整除,计数加1
num=num/5; //继续分解
}
}
printf("The number of 0 in the end of %d! is %d./n",n,count);
}
}