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

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

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

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

【Javaプログラム】

public class Q2 {
    //本問で問われている関数
    static String fizzBuzz(int num) {
        String result;
        if (num % 5 == 0 && num % 3 == 0) {
            result = "3と5で割り切れる";
        } else if (num % 3 == 0) {
            result = "3で割り切れる";
        } else if (num % 5 == 0) {
            result = "5で割り切れる";
        } else {
            result = "3でも5でも割り切れない";
        }
        return result;
    }

    //    以下はテスト
    public static void main(String[] args) {

        for (int i = 1; i <= 15; i++) {
            System.out.println(i + "は" + fizzBuzz(i));
        }
    }
}

【結果】

1は3でも5でも割り切れない
2は3でも5でも割り切れない
3は3で割り切れる
4は3でも5でも割り切れない
5は5で割り切れる
6は3で割り切れる
7は3でも5でも割り切れない
8は3でも5でも割り切れない
9は3で割り切れる
10は5で割り切れる
11は3でも5でも割り切れない
12は3で割り切れる
13は3でも5でも割り切れない
14は3でも5でも割り切れない
15は3と5で割り切れる

【プログラムの解説】

このJavaプログラムは、FizzBuzzと呼ばれるプログラムの実装例です。FizzBuzzとは、1から任意の整数までの数を順番に出力し、その数が3で割り切れる場合は「Fizz」、5で割り切れる場合は「Buzz」、3と5の両方で割り切れる場合は「FizzBuzz」を表示するプログラムです。

このプログラムでは、fizzBuzz(int num) メソッドがFizzBuzzを実装しています。

num が3でも5でも割り切れる場合は、「3と5で割り切れる」という文字列を、3で割り切れる場合は「3で割り切れる」という文字列を、5で割り切れる場合は「5で割り切れる」という文字列を、どれでもない場合は「3でも5でも割り切れない」という文字列を、それぞれ result 変数に代入しています。そして、result 変数の値を return 文で返しています。

main メソッドでは、for 文を用いて1から15までの整数について、それぞれFizzBuzzを実行し、結果をコンソールに出力しています。

具体的には、fizzBuzz メソッドに各数値を渡し、その戻り値とともに「〇は」という文字列を連結して出力しています。

以上のようにして、FizzBuzzの実装とテストを行っています。