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

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

この記事では、Javaを使って数の階乗(かいじょう)を求める方法について詳しく解説します。階乗とは、ある数とそれ以下のすべての正の整数を掛け合わせた積のことです。

階乗は、0より大きい自然数に対して定義される関数です。階乗を表す記号は「!」(感嘆符)で、数値の後ろに付けて表します。例えば「5!」のように記述します。

それでは、実際の動作例を見てみましょう。

入力例

ユーザーが次の値を入力したとします。

Enter the number : 5

出力例

5の階乗は「5 × 4 × 3 × 2 × 1」で計算され、次のような結果が出力されます。

The factorial of 5 is 120

アルゴリズム

階乗を求めるための手順は以下の通りです。

Step1: 処理を開始する
Step2: 3つの整数変数 my_input、factorial、i を宣言する
Step3: ユーザーに整数値の入力を促す、または値をハードコードする
Step4: 入力された値を読み取る
Step5: whileループを実行し、その数とそれより小さい数を掛け合わせる処理を、数が1になるまで繰り返す
Step6: 結果を表示する
Step7: 処理を終了する

例1:Scannerクラスでユーザー入力を受け取る場合

この例では、java.util.Scannerクラスを使用して、ユーザーからコンソール経由で数値を入力してもらい、その階乗を計算します。

import java.util.Scanner;
public class FindFactorial{
    public static void main(String arg[]){
        int my_input, factorial, i;
        System.out.println("Required packages have been imported");
        Scanner my_scanner = new Scanner(System.in);
        System.out.println("A scanner object has been defined ");
        System.out.println("Enter a number: ");
        my_input = my_scanner.nextInt();
        factorial = 1;
        for(i = 1; i <= my_input; i++){
            factorial = factorial * i;
        }
        System.out.printf("The factoral of %d is %d", my_input, factorial);
    }
}

実行結果

Required packages have been imported
A scanner object has been defined
Enter a number:
5
The factorial of 5 is 120

例2:値をあらかじめ定義しておく場合

この例では、整数値を事前にプログラム内で定義しておき、その値の階乗を計算してコンソールに表示します。テストや検証を行いたい場合に便利な方法です。

public class FindFactorial{
    public static void main(String arg[]){
        int my_input, factorial, i;
        my_input = 5;
        System.out.printf("The number is %d", my_input);
        factorial = 1;
        for(i = 1; i <= my_input; i++){
            factorial = factorial * i;
        }
        System.out.printf("\nThe factorial of %d is %d", my_input, factorial);
    }
}

実行結果

The number is 5
The factorial of 5 is 120

まとめ

このように、Javaではforループを使って簡単に階乗を計算できます。ユーザー入力を受け付ける場合はScannerクラスを利用し、固定値で試す場合は変数に直接値を代入するだけで実装可能です。ぜひ自分の環境でもコードを動かしてみてください。

  1. 正方形の面積を求めるJavaプログラムの書き方【初心者向け解説】

    この記事では、Javaを使って正方形の面積を求める方法をわかりやすく解説します。正方形の面積は、次の公式で計算できます。辺 × 辺つまり s2正方形の面積の計算式正方形の1辺の長さを s とすると、その面積は s2(辺の2乗)で表されます。下図のように、縦と横が同じ長さの図形であるため、辺同士を掛け合わせるだけで面積が求まります。入力例1辺の長さ : 4出力例正方形の面積 : 16アルゴリズム処理の流れは以下の手順になります。Step 1 - 開始Step 2 - 整数型の変数 my_side(辺の長さ)と my_area(面積)を宣言するStep 3 - ユーザーから値を読み込む、または値を

  2. Pythonで数値が強い数(ストロングナンバー)かどうかを判定するプログラムの作成方法

    強い数(Strong Number)とは?強い数(ストロングナンバー)とは、各桁の数字の階乗の合計が元の数値と等しくなる数のことです。例145 1の階乗 = 1 4の階乗 = 24 5の階乗 = 120 合計 = 1 + 24 + 120 = 145この例では、145の各桁(1、4、5)の階乗を足すと145になり、元の数値と一致するため、145は強い数であることがわかります。以下のプログラムは、入力された数値が強い数かどうかを判定します。強い数であれば「True」を返し、そうでなければ「False」を返します。プログラムでは2つの関数を使用しています。1つ目は数値が強い数かどうかを判定する i