IPA過去問ドリル

平成23年度 特別 基本情報技術者試験 午前 問7

テクノロジ/アルゴリズム

次の流れ図は,1から100までの整数の総和を求め,結果を変数xに代入するアルゴリズムを示したものであるが,一部誤りがある。どのように訂正すればよいか。

平成23年度 特別 基本情報技術者試験 午前 問7の図

出典:平成23年度 特別 基本情報技術者試験 午前 問7

正解:ア

解説

この流れ図は,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までの総和ではなく単純な回数のカウントになってしまいます。
基本情報技術者の過去問を演習モードで解く