• ベストアンサー

算数の問題を教えてください。

次の問題の解き方をくわしく教えてください。 <問題> ある流れに沿って数の計算をしていくことを考えます。 このとき,次の問いに答えなさい。 プログラム ア:Mを入力する。 イ:N,Iを0にする。 ウ:Iを1増やす。NにIを加える。 エ:IがM以上であれば,オに行き,そうでなければウに戻る。 オ:Nを出力する。 このプログラムにおいて,最初にMに10を入れると最終的にNとしては何が出力されますか。 また、このとき,ウを何回通りますか。

質問者が選んだベストアンサー

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

ア:M = 10 イ:N = 0, I = 0 ウ:I = 1, N = 1(1回目) エ:I(1)はM(10)以上ではないので、ウに戻る ウ:I = 2, N = 3(2回目) エ:I(2)はM(10)以上ではないので、ウに戻る ウ:I = 3, N = 6(3回目) エ:I(3)はM(10)以上ではないので、ウに戻る ... Nには、1から1ずつ増えているIの値を足し込んでいます。 これを10回繰り返します。 ウを通る回数:10 Nの最終的な値:1~10の和である55

dragon327
質問者

お礼

わかりやすい回答ありがとうございました。 勉強頑張ります。

その他の回答 (3)

回答No.4

>#2、3さん あ、本当だ。お恥ずかしい・・・ 私の回答は無視してください♪

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.3

>#1さん IとNがゴッチャになっています。

dragon327
質問者

お礼

ごちゃになる問題ですね。

回答No.1

プログラマーではありませんが、 Nには10が出力され、ウを4回通るんではないんですかね? (ア) M=10 ※Mは10になる。 (イ) N=0 I=0 ※N、Iともに0になる (ウ) I=I+1 N=N+I ※Iは0+1で1になる。 ※Nは0+I(1)で1になる。 ウは1回目 (エ) 「M以上」とのことなので I > M または、I = M の時は手順オに進み I < M の時は手順ウに進む ※I (1)は M (10) より小さいのでウに進む (ウ) I=I+1 N=N+I ウは2回目だけど ウに「戻る」わけではないことに注意。 N、Iの値はそのままで もう1度、手順ウを行う。 ※Iは1+1で2になる。 ※Nは1+I(2)で3になる。 ウは2回目 (エ) 「M以上」とのことなので I > M または、I = M の時は手順オに進み I < M の時は手順ウに進む ※I (3)は M (10) より小さいのでウに進む (ウ) I=I+1 N=N+I ※Iは2+1で3になる。 ※Nは3+I(3)で6になる。 ウは3回目 (エ) 「M以上」とのことなので I > M または、I = M の時は手順オに進み I < M の時は手順ウに進む ※I (6)は M (10) より小さいのでウに進む (ウ) I=I+1 N=N+I ※Iは3+1で4になる。 ※Nは6+I(4)で10になる。 ウは4回目 (エ) 「M以上」とのことなので I > M または、I = M の時は手順オに進み I < M の時は手順ウに進む ※I (10)は M (10) と同じなので手順オに進む (オ) Nを出力 ※Nは10なので10が出力される よって Nは10 ウは4回通る ことになるんじゃないでしょうか?

dragon327
質問者

お礼

回答ありがとうございました。

関連するQ&A