ここでは、任意の数値の階乗結果の末尾の 0 の数を計算する方法を見ていきます。つまり、n = 5 の場合は 5 になります。 =120。末尾の 0 は 1 つだけです。 20! の場合、20! = 2432902008176640000 としてゼロが 4 つになります。
最も簡単な方法は、階乗を計算して 0 を計算することです。ただし、n の値が大きい場合、このアプローチは失敗します。そこで、別のアプローチをとってみます。素因数が 2 と 5 の場合、末尾にゼロが表示されます。 2と5を計算すると結果が得られます。これを行うには、このルールに従います。
Trailing 0 =階乗(n)素因数の5の数
##アルゴリズムcountTrailingZeros(n)begin count := 0 for i := 5, (n/i) >= 1, increase i := i * 5, do count := count + (n / i) done return count; end
#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); }
Number of trailing zeros: 4
以上が数値の階乗内の末尾のゼロの数を計算する C/C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。