アルゴリズムとプログラミング (全23問中2問目)
No.2
関数 binaryToInteger は,1桁以上の符号なし2進数を文字列で表した値を引数 binaryStr で受け取り,その値を整数に変換した結果を戻り値とする。例えば,引数として"100"を受け取ると,4を返す。プログラム中のa,bに入れる字句の適切な組合せはどれか。
〔プログラム〕
〔プログラム〕
出典:令和6年春期 問85
分類
テクノロジ系 » アルゴリズムとプログラミング » アルゴリズムとプログラミング
正解
エ
解説
2進数の各桁と10進数は下図のように対応しています。関数のfor文内では、引数 binaryStr の末尾から1文字ずつ順番に処理を行っていくことがわかります。設問で例として挙げられている"100"であれば、
〔aについて〕
2進数の末尾からi桁目は、10進数の2i-1であるため、空欄aには2を(i-1)乗した値を使っている2の(i-1)乗が当てはまります。
〔bについて〕
式中の×と+の違いだけです。戻り値である integerNum は、各桁の10進表現を合計したものであるため+が当てはまります。
したがって適切な組合せは「エ」です。
- i=0 末尾からi番目は0 ⇒ 20×0=0
- i=1 末尾からi番目は0 ⇒ 21×0=0
- i=2 末尾からi番目は1 ⇒ 22×1=4
〔aについて〕
2進数の末尾からi桁目は、10進数の2i-1であるため、空欄aには2を(i-1)乗した値を使っている2の(i-1)乗が当てはまります。
〔bについて〕
式中の×と+の違いだけです。戻り値である integerNum は、各桁の10進表現を合計したものであるため+が当てはまります。
したがって適切な組合せは「エ」です。