用C / C ++编程来计算数字阶乘中的尾随零?

通过对阶乘数中的尾随零进行计数是通过对数的因子中的2s和5s进行计数来完成的。因为2 * 5给出10,它在数字的阶乘后是0。

示例

阶乘7 = 5040,后跟0的数目为1。

根据我们的逻辑7!= 2 * 3 * 4 * 5 * 6 * 7,它具有3 2s和1 5s,因此尾随0的数目为1。

#include <iostream>
using namespace std;
int main() {
   int n = 45;
   int count = 0;
   for (int i = 5; n / i >= 1; i *= 5)
      count += n / i;
   cout<<"No of trailing 0s in " << n<< "! is " << count;
   return 0;
}

输出结果

No of trailing 0s in 24! is 10