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

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

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

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

【Javaプログラム】

【結果】

6
6
6
6

【プログラムの解説】

このJavaプログラムは、2つの整数 num1 と num2 の最大公約数を求めるプログラムです。

gdc(int num1, int num2) メソッドでは、 x に num1 を、 y に num2 を代入しています。

その後、 while ループを使って x と y が等しくなるまで、次の処理を繰り返します。

x が y よりも大きい場合は、 x から y を引いた値を x に代入します。

y が x よりも大きい場合は、 y から x を引いた値を y に代入します。

最終的に while ループが終了すると、 x の値が num1 と num2 の最大公約数になりますのでその値を return 文で返します。

main メソッドでは、 gdc メソッドを引数を変えて4回呼び出して、その結果を出力しています。

例えば、 gdc(30, 42) を呼び出すと、num1 には 30 が、 num2 には 42 が渡されます。

gdc メソッド内での処理を追うと、最初のループでは x は 30、 y は 42 になっています。

次に y - x を計算して 12 になり、y に代入されます。これにより、x は 30 のまま、 y は 12 になります。

2回目のループでは、 x は 18 に、 y も 18 になります。

最後に、 x と y が等しくなるため、 while ループが終了します。

x の値が 6 になっているため、 gdc(30, 42) の戻り値は 6 になります。