我是C编程新手
我想找出给定数的阶乘中尾随零的个数
{
long int n=0,facto=1,ln=0;
int zcount=0,i=1;
printf("Enter a number:");
scanf("%ld",&n);
if(n==0)
{
facto=1;
}
else
{
for(i=1;i<=n;i++)
{
facto=facto*i;
}
}
printf("%ld",facto);
while(facto>0)
{
ln=facto%10;
facto/10;
if(ln=!0)
{
break;
}
else
{
zcount+=1;
}
}
printf("Tere are Total %d Trailing zeros in given factorial",zcount);
}
我试图计算这个数的模,它将返回给定数的最后一位作为余数,然后
n/10;
将删除最后一个数。在执行程序之后,输出总是将尾随零的个数显示为“0”,即使存在零,条件也总是得到满足。
最佳答案
{
long int n=0,facto=1,ln=0;
int zcount=0,i=1;
printf("Enter a number:");
scanf("%ld",&n);
if(n==0)
{
facto=1;
}
else
{
for(i=1;i<=n;i++)
{
facto=facto*i;
}
}
printf("%ld\n",facto);
while(facto>0)
{
ln=(facto%10);
facto/=10; //here you done one mistake
if(ln!=0) //another one here
{
break;
}
else
{
zcount+=1;
}
}
printf("Tere are Total %d Trailing zeros in given factorial",zcount);
}
/运行这段代码,它现在就可以工作了,我猜你已经知道了/
关于c - c中阶乘的尾随零数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28516354/