>bとcが正解のようになるのはなぜ
>T(1)~T(10)も各要素にT(i)=1+2+・・・+i
⇒
最初に
求めるT(i)は以下
T(1) ← 1
T(2) ← 1+2
T(3) ← 1+2+3
T(4) ← 1+2+3+4
: ←
T(10)← 1+2+3+ ・・・ +10 (即ち、55)
基本型は
sum=0;
for i in range(1,11,1) ... iを1から10まで1ずつ増やす
sum ← sum + i
T(i) ← sum
sumの値は、 1, (1+2), (1+2+3) と変化します。
★以下トレースは、コピーして「等間隔フォント」アプリ(例えばメモ帳)に貼付けて下さい
基本型のトレース...T(i) ← sum
-----+---+---+------------------------
step| i |sum|
-----+---+---+------------------------
0 | | 0 |sum初期値
1 | 1 | 1 |sum ← sum(0) + i(1)
2 | 2 | 3 |sum ← sum(1) + i(2)
3 | 3 | 6 |sum ← sum(3) + i(3)
4 | 4 |10 |sum ← sum(6) + i(4)
※T(i)に書込む値を上記のsum相当に変化させる
設問右側が基本型に近い
-----+---+---------------------------------------
step| i | T
| |(1)|(2)|(3)|(4)|・・・|
-----+---+---+---+---+---+---+-------------------
0 | | 1 | | | | |初期値 T(1) ← 1
0 | 2 | | | | | |初期値 i ← 2
1 | | | 2 | | | |T(i) ← T(i-1)+i ... 1+1
2 | 3 | | | | | |i ← i + 1
3 | | | | 6 | | |T(i) ← T(i-1)+i ... 3+3
4 | 4 | | | | | |i ← i + 1
5 | | | | | 10| |T(i) ← T(i-1)+i ... 6+4
6 | 5 | | | | | |i ← i + 1
設問左側は、sum相当の値を二重ループ内側で実装
-----+---+---+-------------------------------------------------------
step| i | j | T
| | |(1)|(2)|(3)|(4)|・・・|
-----+---+---+---+---+---+---+---+-----------------------------------
0 | 1 | | | | | | |初期値 i ← 1
-----+---+---+---+---+---+---+---+-----------------------------------
| | | 0 | | | | |T(i) ← 0
| | 1 | | | | | |j ← 1 、 ループ2判定(j>i)..不成立継続
| | | 1 | | | | |T(i) ← T(i) + j .. 0+1
| | 2 | | | | | |j ← j+1、 ループ2判定(j>i)..成立終了
-----+---+---+---+---+---+---+---+-----------------------------------
| 2 | | | | | | |i ← i + 1
| | | | 0 | | | |T(i) ← 0
| | 1 | | | | | |j ← 1 、 ループ2判定(j>i)..不成立継続
| | | | 1 | | | |T(i) ← T(i) + j .. 0+1
| | 2 | | | | | |j ← j+1、 ループ2判定(j>i)..不成立継続
| | | | 3 | | | |T(i) ← T(i) + j .. 1+2
| | 3 | | | | | |j ← j+1、 ループ2判定(j>i)..成立終了
-----+---+---+---+---+---+---+---+-----------------------------------
| 3 | | | | | | |i ← i + 1
| | | | | 0 | | |T(i) ← 0
| | 1 | | | | | |j ← 0 、 ループ2判定(j>i)..不成立継続
| | | | | 1 | | |T(i) ← T(i) + j .. 0+1
| | 2 | | | | | |j ← j+1、 ループ2判定(j>i)..不成立継続
| | | | | 3 | | |T(i) ← T(i) + j .. 1+2
| | 3 | | | | | |j ← j+1、 ループ2判定(j>i)..不成立継続
| | | | | 6 | | |T(i) ← T(i) + j .. 3+3
| | 4 | | | | | |j ← j+1、 ループ2判定(j>i)..成立終了
-----+---+---+---+---+---+---+---+-----------------------------------
| 4 | | | | | | |i ← i + 1
| | | | | | 0 | |T(i) ← 0
| | 1 | | | | | |j ← 1 、 ループ2判定(j>i)..不成立継続
| | | | | | 1 | |T(i) ← T(i) + j .. 0+1
| | 2 | | | | | |j ← j+1、 ループ2判定(j>i)..不成立継続
| | | | | | 3 | |T(i) ← T(i) + j .. 1+2
| | 3 | | | | | |j ← j+1、 ループ2判定(j>i)..不成立継続
| | | | | | 6 | |T(i) ← T(i) + j .. 3+3
| | 4 | | | | | |j ← j+1、 ループ2判定(j>i)..不成立継続
| | | | | |10 | |T(i) ← T(i) + j .. 6+4
| | 5 | | | | | |j ← j+1、 ループ2判定(j>i)..成立終了
-----+---+---+---+---+---+---+---+-----------------------------------
| | | | | | | |