为什么我的代码用于在阶乘返回垃圾值中查找尾随零的数量

时间:2015-08-02 18:34:00

标签: c++ math factorial

我想在阶乘中找到尾随零的数量,但我的代码返回了垃圾值。

#include<iostream>
using namespace std;

int main()
{   
   long int n;
   cin>>n;
   int z=0;
   while(n>0)
   {
      n=n/5;
      n=z+n;
      z=n;
   }
   return z;
}

1 个答案:

答案 0 :(得分:3)

我理解您的代码如下:您的输入为n,并且您想要计算有多少尾随零n!。在这种情况下,您的while循环必须采用以下方式:

while(n > 0)
{
    n = n / 5;
    z = z + n;
}

// After running the loop, directly output the result.
cout << "z: " << z;

这在1000的扩展中给了我249个尾随零! 和1151尾随零4617!

根据this page来说应该是正确的。