新らしくなった基本情報 科目 B 20問バージョン アルゴリズムとプログラミング サンプル問題7をJavaにしてみました

2023 年 4 月からIPA (独立行政法人情報処理推進機構)の基本情報技術者試験の制度が変更されました。

ここでは、「基本情報技術者試験 科目 B のサンプル問題20問バージョン」の中から、アルゴリズムとプログラミングの問題を取り上げ、Javaのソースコードを示します。

新人エンジニア研修に参加されている皆様の参考になれば幸いです。

【Javaプログラム】

public class Q7 {
    //本問で問われている関数
    static int factorial(int n) {
        if (n == 0) {
            return 1;
        }
        return n * factorial(n - 1);
    }

    public static void main(String[] args) {
        int ans = factorial(10);
        System.out.println(ans);
    }
}

【結果】

3628800

【プログラムの解説】

このプログラムは、与えられた整数nの階乗(n!)を再帰的に計算するプログラムです。階乗とは、1からその数までのすべての整数の積です。

例えば、5の階乗は 5! = 5 × 4 × 3 × 2 × 1 = 120 となります。

プログラムは以下のように構成されています。

  1. factorialメソッド: 引数で受け取った整数nの階乗を再帰的に計算するメソッドです。
  2. mainメソッド: プログラムのエントリーポイントです。ここからプログラムが実行されます。

factorialメソッドは再帰的に実装されています。

つまり、関数の中で自分自身を呼び出しています。

再帰の基本ケースはn == 0です。この場合、階乗の定義により1を返します。

それ以外の場合(n > 0)、n * factorial(n - 1)を返します。

ここでfactorial(n - 1)は、n - 1の階乗を計算する再帰呼び出しです。

mainメソッドでは、まず整数10を引数としてfactorialメソッドを呼び出し、10の階乗を計算します。

計算結果は変数ansに格納されます。

そして、System.out.println(ans)を使って結果をコンソールに出力します。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。