助け合いフォーラム
ITパスポート(AI解説)
問題ID : 38278
問題を開く
関数 convert は,整数型の配列を一定のルールで文字列に変換するプログラムである。関数 convert を convert(arrayInput) として呼び出したときの戻り値が"AABAB"になる引数 arrayInput の値はどれか。ここで,arrayInput の要素数は1以上とし,配列の要素番号は1から始まる。

正解
{1, 1, 2, 1, 0}
解説
このプログラムは、整数型の配列arrayInputを受け取り、配列の各要素の値に応じて文字列を生成して返す関数convertです。
以下のルールに従って文字列が生成されます。
- 配列arrayInputの要素を1つずつ処理します。
- 要素の値が1の場合、文字列に"A"を追加します。
- 要素の値が1以外の場合、文字列に"B"を追加します。
- 全ての要素の処理が終了したら、生成された文字列を返します。
プログラムの処理の流れをフローチャートで表すと以下のようになります。
graph TD
A["配列arrayInputの要素を1つずつ処理"] --> B{"要素の値が1か?"}
B -->|"Yes"| C["文字列に'A'を追加"]
B -->|"No"| D["文字列に'B'を追加"]
C --> E{"全ての要素の処理が終了したか?"}
D --> E
E -->|"Yes"| F["生成された文字列を返す"]
E -->|"No"| A
・{0, 0, 1, 2, 1}
この配列を関数convertに渡すと、文字列"BBABB"が生成されます。
・{0, 1, 2, 1, 1}
この配列を関数convertに渡すと、文字列"BABAA"が生成されます。
・{1, 0, 1, 2, 0}
この配列を関数convertに渡すと、文字列"ABABB"が生成されます。
・{1, 1, 2, 1, 0}
この配列を関数convertに渡すと、文字列"AABAB"が生成されます。
以上の解説から、正解は「{1, 1, 2, 1, 0}」となります。
アルゴリズムとプログラミング
投稿日 2025/12/30
・{0, 0, 1, 2, 1}
この配列を関数convertに渡すと、文字列"BBABB"が生成されます。
選択肢の中の1つです。この配列の場合、BBABBではなく、BBABAにならないのでしょうか?
要素が1であれば、A。違うなら、Bのアルゴリズムなら配列の最後の1はAになると認識しています。
この投稿に対して返信しませんか?