程序在C ++中找到n阶乘的尾随零?

假设我们有一个数字n,我们必须找到n!的尾随零。

因此,如果输入像n = 20,那么输出将是4,即20!= 2432902008176640000

为了解决这个问题,我们将按照以下步骤

  • 设置计数:= 0

  • 对于i:= 5,(n / i)> 1,更新i:= i * 5,执行

    • 计数:=计数+(n / i)

  • 返回计数

让我们看一下下面的实现以获得更好的理解

示例

#include <iostream>

#include <cmath>

#define MAX 20

using namespace std;

int countTrailingZeros(int n) {

   int count = 0;

   for (int i = 5; n / i >= 1; i *= 5)

      count += n / i;

   return count;

}

main() {

   int n = 20;

   cout << "Number of trailing zeros: " << countTrailingZeros(n);

}

输入项

20

输出结果

Number of trailing zeros: 4

以上是 程序在C ++中找到n阶乘的尾随零? 的全部内容, 来源链接: utcz.com/z/321601.html

回到顶部