実体験から始める情報講座

基本情報技術者講座

★ 猫本 4-01 アルゴリズム(その2) ★

基本情報技術者 平成28年度春期 問8

xとyを自然数とするとき,流れ図で表される手続を実行した結果として,適切なものはどれか。


解説

(頭の準備体操)

具体例を想定すれば,問題はやさしくなる。


選択肢から,x÷yの商と余りを求めているのがわかる。

ここで,xを10,yを3の場合を想定する。

10÷3は,商が3,余りが1

トレースをする。


よって,qの値は「x÷yの商」,rの値は「x÷yの余り」である。

このアルゴリズムは,xをyで何回減算できるかを求めることで,x÷yの商と余りを求めている。

解答

基本情報技術者 平成29年度春期 問5

流れ図は,シフト演算と加算の繰り返しによって,2進整数の乗算を行う手順を表したものである。この流れ図中のa,bの組合せとして,適切なものはどれか。ここで,乗数と被乗数は符号なしの16ビットで表される。X,Y,Zは32ビットのレジスタであり,けた送りは論理シフトを用いる。最下位ビットを第0ビットと記す。


解説

(頭の準備体操)

論理シフトは,あふれたビットは捨てる。空いたビットには0を入れる。

具体例を想定すれば,問題はやさしくなる。


xを2(2進数では,00…0010),yを3(2進数では,00…0011),

zは「xとyを乗算した」6となる場合を想定する。

選択肢をトレースをする。


以降,i≦16の間で,「Yの第0ビットが1」になることはないので,加算(③)されない。Zは6(正解)

このアルゴリズムは,Yの第nビットが1であれば、ZにX×2nを加算する処理を繰り返している。


以降,i≦16の間で,「Yの第0ビットが1」になることはないので,加算(③)されない。Zは2


以降,i≦16の間で,「Yの第15ビットが1」になることはないので,加算(③)されない。Zは0


以降,i≦16の間で,「Yの第15ビットが1」となったとしても,xの値(0)が加算(③)される。Zは0


解答