程序在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