Perhatikan potongan program berikut ini:
function batagor(i,j,k: integer): longint;
begin
if (i = j) then batagor := k
else if (j = k) then batagor := i
else if (i = k) then batagor := j
else batagor := i + j + k + batagor(i-2, j+1, k-1);
end;
Berapakah hasil pemanggilan batagor(15,5,10)?
Siswa SMA Negeri 68 Jakarta
fungsi b(15,5,10) akan memanggil fungsi2 sebagai berikut
b(15,5,10) = 30 + b(13,6,9)
b(13,6,9) = 28 + b(11,7,8)
b(11,7,8) = 26 + b(9,8,7)
b(9,8,7) = 24 + b(7,9,6)
b(7,9,6) = 22 + b(5,10,5)
b(5,10,5) = 10.
maka 30 + 28 + 26 + 24 + 22 + 10 = 140
Be Grateful ..!!
REKURSIF
batagor(15,5,10) = 30 + b(13,6,9)
batagor(13,6,9) = 28 + b(11,7,8)
batagor(11,7,8) = 26 + b(9,8,7)
batagor(9,8,7) = 24 + b(7,9,6)
batagor(7,9,6) = 22 + b(5,10,5)
batagor(5,10,5) = 10.
maka 30 + 28 + 26 + 24 + 22 + 10 = 140
batagor :=15+5+10+batagor(13,6,9)
batagor :=30+batagor(13,6,9)
batagor :=30+28+batagor(11,7,8)
batagor :=30+28+26+batagor(9,8,7)
............
............
sampai batagor :=30+28+26+24+22+batagor(5,10,5)
==> i=5;j=10;k=5 ==> i=k , maka batagor :=j
==> batagor(5,10,5) = 10
==> batagor :=30+28+26+24+22+10
==> batagor :=140
Masuk untuk menulis jawaban
140
140