ホームページ  >  記事  >  バックエンド開発  >  数値の階乗内の末尾のゼロの数を計算する C/C++ プログラム

数値の階乗内の末尾のゼロの数を計算する C/C++ プログラム

WBOY
WBOY転載
2023-08-29 12:29:051398ブラウズ

ここでは、任意の数値の階乗結果の末尾の 0 の数を計算する方法を見ていきます。つまり、n = 5 の場合は 5 になります。 =120。末尾の 0 は 1 つだけです。 20! の場合、20! = 2432902008176640000 としてゼロが 4 つになります。

最も簡単な方法は、階乗を計算して 0 を計算することです。ただし、n の値が大きい場合、このアプローチは失敗します。そこで、別のアプローチをとってみます。素因数が 2 と 5 の場合、末尾にゼロが表示されます。 2と5を計算すると結果が得られます。これを行うには、このルールに従います。

Trailing 0 =階乗(n)素因数の5の数

数値の階乗内の末尾のゼロの数を計算する C/C++ プログラム

##アルゴリズム

countTrailingZeros(n)

begin
   count := 0
   for i := 5, (n/i) >= 1, increase i := i * 5, do
      count := count + (n / i)
   done
   return count;
end

Example

の中国語訳は次のとおりです:

Example

#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);
}

Output

Number of trailing zeros: 4

以上が数値の階乗内の末尾のゼロの数を計算する C/C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。