Perhatikan potongan program berikut!
function kibo(n: integer):integer;
begin
if (n = 2) or (n = 1) or (n = 0) then kibo := n
else kibo := kibo(n-1) + kibo(n-3);
end;
Berapa kalikah kibo(3) dipanggil saat pemanggilan kibo(7) ?
kibo(7) = kibo(6) + kibo(4)
= kibo(5) + kibo(3) + kibo(3) + kibo(1)
= kibo(4) + kibo(2) + kibo(3) + kibo(3) + kibo(1)
= kibo(3) + kibo(1) + kibo(2) + kibo(3) + kibo(3) + kibo(1)
TOTAL = 3 KALI
Masuk untuk menulis jawaban
SMA IT AL BINAA ISLAMIC BOARDING SCHOOL
2
kibo(7)=k(6)+k(4)=2+1=3 kibo(6)=k(5)+k(3)=1+1=2 kibo(5)=k(4)+k(2)=1 kibo(4)=k(3)+k(1)=1
Siswa SMA Negeri 68 Jakarta
dapat dicari dengan binary tree.
k(7)
= k(6) + k (4)
= k(5) + k(3) + k(3) + k(1)
= k(4) + k(2) + k(3)+ k(3) + k(1)
= k(3) + k(1) + k(2) + k(3) + k(3) + k(1)
jadi jawabannya adalah 3x
3 kali pemanggilan
a 7 else : kibo6+kibo4
b 6 else : kibo5+kibo3
c 5 else : kibo4+kibo2
d 4 else : kibo3+kibo1
e 3 else : kibo2+kibo0
b5~c4~d3`~e2~*^d1^c2^b3`^a4~d3`
NB :
~ maksudnya turun ke baris bawahnya
` maksudnya kibo(3) dijumpai / dipanggil
^ maksudnya naik ke baris atasnya
* maksudnya tidak perlu dilanjutkan lagi operasinya
Total 3 pemanggilan
kibo(7) = kibo(6) + kibo(4)
= kibo(5) + kibo(3) + kibo(3) + kibo(1)
= kibo(4) + kibo(2) + kibo(3) + kibo(3) + kibo(1)
= kibo(3) + kibo(1) + kibo(2) + kibo(3) + kibo(3) + kibo(1)
Kibo(3) yg ditebelin diatas (ada 4) itu dihitung gak ?