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

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

WBOY
リリース: 2023-08-29 12:29:05
転載
1484 人が閲覧しました

ここでは、任意の数値の階乗結果の末尾の 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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート