-
Perhatikan potongan program berikut ini:
var m,i,a,b,c,d:longint; begin readln(m); a:=1;b:=1;c:=1; for i:=4 to m do begin d:=a+b+c; a:=b; b:=c; c:=d; end; writeln(c); end.
Bila user memasukkan input 8, maka berapakah outputnya?
Perulangan dimulai dari i=4 sampai i = 8, dengan nilai awal a,b,c = 1.
Untuk i = 4
d = 3, a = 1, b = 1, c = 3
Untuk i = 5
d = 5, a = 1, b = 3, c = 5
Untuk i = 6
d = 9, a = 3, b = 5, c = 9
Untuk i = 7
d = 17, a = 5, b = 9, c = 17
Untuk i = 8
d = 31, a = 9, b = 17, c = 31
Dengan cara lain:
Nilai c pasti akan sama dengan nilai d di mana nilai d = a+b+c.
Sedangkan nilai a dan b baru merupakan nilai di sebelahnya.
Dengan demikian nilai c merupakan penjumlahan 3 nilai sebelumnya.
Sehingga jika kita urutkan akan menjadi:
1,1,1,3,5,9,17,31,57,…
dengan 3 nilai pertama milik i = 4.