C++
 Computer >> コンピューター >  >> プログラミング >> C++

反復処理(forループ)を使って数値の階乗を求めるC++プログラム

階乗とは

非負整数 n の階乗(factorial)とは、n 以下のすべての正の整数をかけ合わせた値のことです。

例えば、6 の階乗は以下のように計算されます。

6! = 6 × 5 × 4 × 3 × 2 × 1
6! = 720

forループによる階乗の計算方法

階乗は、再帰的なプログラムでも反復処理(イテレーション)を使うプログラムでも求めることができます。ここでは、for ループを使用して階乗を計算する反復型のプログラムを紹介します。

サンプルコード

#include <iostream>
using namespace std;
int main() {
    int n = 6, fact = 1, i;
    for(i=1; i<=n; i++)
        fact = fact * i;
    cout<<"Factorial of "<< n <<" is "<<fact;
    return 0;
}

実行結果

Factorial of 6 is 720

プログラムの解説

上記のプログラムでは、for ループが 1 から n まで順番に繰り返されます。ループの各回で、変数 fact に現在のカウンタ i を掛けていき、最終的に fact には 1 から n までのすべての整数の積が格納されます。該当するコード部分は以下の通りです。

for(i=1; i<=n; i++)
    fact = fact * i;

注意点

階乗は数が大きくなると非常に急激に増加するため、int 型ではすぐにオーバーフローが発生します。大きな数の階乗を扱う場合は、long long 型への変更や、必要に応じて多倍長整数ライブラリの利用を検討してください。

  1. 【初心者向け】Javaで再帰を使って階乗を求めるプログラムの書き方

    本記事では、再帰(リカージョン)を使用して数の階乗を求めるJavaプログラムの作成方法を詳しく解説します。 階乗とは何か 階乗(factorial)とは、ある数とそれ以下のすべての正の整数を掛け合わせた値のことです。階乗は0より大きい自然数に対して定義される関数であり、その記号は数字の後に付ける「!(エクスクラメーションマーク)」で表されます。たとえば5の階乗は「5!」と書き、5 × 4 × 3 × 2 × 1 = 120となります。 再帰とは何か 再帰関数とは、特定の条件が満たされるまで自分自身を繰り返し呼び出す関数のことです。再帰とは、自己相似的な形で処理を繰り返す手法を指します。プログラ

  2. Javaで数の階乗を求めるプログラムの作成方法【初心者向け解説】

    この記事では、Javaを使って数の階乗(かいじょう)を求める方法について詳しく解説します。階乗とは、ある数とそれ以下のすべての正の整数を掛け合わせた積のことです。 階乗は、0より大きい自然数に対して定義される関数です。階乗を表す記号は「!」(感嘆符)で、数値の後ろに付けて表します。例えば「5!」のように記述します。 それでは、実際の動作例を見てみましょう。 入力例 ユーザーが次の値を入力したとします。 Enter the number : 5 出力例 5の階乗は「5 × 4 × 3 × 2 × 1」で計算され、次のような結果が出力されます。 The factorial of 5 is 120