新らしくなった基本情報 科目 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 となります。
プログラムは以下のように構成されています。
- factorialメソッド: 引数で受け取った整数
n
の階乗を再帰的に計算するメソッドです。 - 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年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
- 新入社員2024年11月23日「ゲシュタルト崩壊」とシステム開発
- 新入社員2024年11月23日データベースでテーブル名やフィールド名にスペースを使うことは、一般的には推奨されていません
- 新入社員2024年11月23日「データにはなぜ型が必要なのか?」を2進数の観点から解説
- 新入社員2024年11月23日ディスプレイの解像度の意味と変更方法