我是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/

10-12 16:09