Deskripsi Untuk Soal Nomor 38 dan 39
Perhatikan potongan program berikut:
function sapi(kucing: integer): integer;
begin
if (kucing <= 2 ) then
sapi:= 1
else
sapi:= sapi(kucing div 2)+1;
end;
function ayam(rumput: integer): integer;
begin
if (rumput < 1024) then
ayam:= ayam(rumput*2) + sapi(rumput)
else
ayam:= 0;
end;
function rumput(batu: integer): integer;
var a, c:integer;
begin
a:=2;
c:=1;
while (batu > 0) do
begin
if ((batu mod 2) = 1) then
c:=c*a;
batu:= batu div 2;
a:= a*a;
end;
rumput:=c;
end;Berapakah nilai dari ayam(rumput(9))?
A. 19
B. 10
C. 9
D. 8
E. 7
Berapakah nilai dari ayam(rumput(2))?
A. 44
B. 42
C. 8
D. 2
E. 1
Di usut aja fungsinya, cari polanya
Fungsi sapi itu fungsi 2 pangkat berapa yang hasinya kucing,
contoh kucing = 512
2 pangkat n = 512
n = 9
jalankan dulu fungsi rumput(9)
saat batu = 9
c = 2
a = 4
batu = 9 div 2 = 4
saat batu = 4
c = 2
a = 16
batu = 4 div 2 = 2
saat batu = 2
c = 2
a = 256
batu = 2 div 2 = 1
saat batu = 1
c = 512
a = 65536
batu = 1 div 2 = 0 (selesai)
rumput = c = 512
sekarang fungsi ayam(512)
ayam(512) = ayam(1024) + s (512)
ayam(512) = 0 + 9 = 9 (C)
nanti jadi ketemu
a(4) = a(8) + s(4)
a(8) = a(16) + s(8)
a(16) = a(32) + s(16)
a(32) = a(64) + s(32)
a(64) = a(128) + s(64)
a(128) = a(256) + s(128)
a(256) = a(512) + s(256)
a(512) = a(1024) + s(512)
Masuk masukin angkanya dan
VOILA~ ketemu
a(4) = 44 (A)
note : a = ayam, males nulis <(")
Ayolah Share caranya mas...
caranya agak panjang.. jadi harus sabar.. jawabannya : 38--> C.9, 39--> A.44
Masuk untuk menulis jawaban