アルゴリズム(全80問中40問目)
No.40解説へ
次の流れ図は,1から100までの整数の総和を求め,結果を変数xに代入するアルゴリズムを示したものであるが,一部誤りがある。どのように訂正すればよいか。
出典:平成23年特別 問 7
- ①の処理を "0→x"にする。
- ②の条件判定を "i:99"にする。
- ③の処理を "x+i→i"にする。
- ④の処理を "x+1→x"にする。
広告
解説
この流れ図では iを1~100まで変化させながら、xにiを加算することを繰り返して1~100までの総和を計算します。
正しくは 1+2+3+…+100 と計算が行われればいいのですが、この流れ図では、xの初期値に1が指定されているのでループ1回目の③で 1+1→x、2回目では (1+1)+2→x というようにxの初期値の1が余分に加算されてしまうことになります。
正しくは 1+2+3+…+100 と計算が行われればいいのですが、この流れ図では、xの初期値に1が指定されているのでループ1回目の③で 1+1→x、2回目では (1+1)+2→x というようにxの初期値の1が余分に加算されてしまうことになります。
- 正しい。①は変数xを初期化する処理です。iが1から始まるためxの初期値は0としなくてはなりません。
- i:99とすると分岐判定で100>99となり、iが100のときにはループ内の処理が行われず、100が加算されないことになるため誤りです。
- xが増えていかず結果が初期値のままになってしまうため誤りです。
- iが増えていかず永久ループになってしまうため誤りです。
広告