平成23年度 特別 基本情報技術者試験 午前 問7
テクノロジ/アルゴリズム次の流れ図は,1から100までの整数の総和を求め,結果を変数xに代入するアルゴリズムを示したものであるが,一部誤りがある。どのように訂正すればよいか。

出典:平成23年度 特別 基本情報技術者試験 午前 問7
- ア①の処理を" 0→x "にする。
- イ②の条件判定を" i:99 "にする。
- ウ③の処理を" x+i→i "にする。
- エ④の処理を" x+1→x "にする。
正解:ア
解説
この流れ図は,xを合計,iをカウンタとして1から100までの整数を加算しますが,初期化で①「1→x」としているため,最終的な合計に余分な1が加わってしまいます。正しい総和は1+2+...+100=5050ですが,このアルゴリズムでは5051になってしまうため,①を「0→x」に訂正する必要があります。
選択肢ごとの解説
- ア正しい。①でxを1ではなく0に初期化すれば,x+i→xの繰返しだけで正しい総和5050が得られます。
- イ誤り。②の条件を"i:99"にすると,i=100のときにループを抜けてしまい,100が加算されずに合計が不足します。
- ウ誤り。③を"x+i→i"にすると,カウンタiが総和相当の値に置き換わってしまい,ループの終了条件も総和に依存する誤った動作になります。
- エ誤り。④を"x+1→x"にすると,iではなく1ずつxに加算されることになり,1から100までの総和ではなく単純な回数のカウントになってしまいます。