応用問題の解説
例えば、このプログラムは、正しい動きをします。
1+2+...+10を「電卓」で行う場合、どのように行いますか?たぶん、
以下のように行うと思います。
- 1+2を計算して、3を得る。
- 3+3を計算して、6を得る。
- 6+4を計算して、10を得る。
- 10+5を計算して、15を得る。
- 15+6を計算して、21を得る。
- 21+7を計算して、28を得る。
- 28+8を計算して、36を得る。
- 36+9を計算して、45を得る。
- 45+10を計算して、55を得る。
頭の中で、
- いくつまで足せばいいのか?(この場合は10)
- 今度は、いくつを足せばいいのか?
- 途中経過はいくつか?
というのを覚えながら、計算していると思います。
(途中経過は、電卓が覚えてくれますが。)
覚えるべきものを変数として、使用します。
順に、k, i, sumという変数を使っています。
i番目の繰り返すの時には、sumにiを足して、
sumに代入するという
命令sum=sum+i;
を行います。この繰り返しを、i=1からi=kまで繰り返せばよいので、
for(i=1;i<=k;++i){sum=sum+i;}
とすれば、メインの部分は完成です。
後は、入出力部、変数の宣言部分を加えれば完成です。
実質的に、for文が登場するのは、15行目だけです。