Deskripsi Untuk Soal Nomor 35 dan 36
Perhatikan potongan program berikut:
function piring(x:longint):longint;
begin
piring := 1;
while x mod 2 = 0 do
begin
piring := piring * 2;
x := x div 2;
end;
end;
function gelas(x,y:longint):longint;
begin
gelas := 0;
if x<=y then gelas := piring(x) + gelas(x+1,y);
end;Berapakah hasil dari pemanggilan piring(28)?
Berapakah hasil dari pemanggilan gelas(15, 45)?
35. 4
Siswa SMA Negeri 68 Jakarta
piring(x) akan mencari banyaknya faktor 2 pada bilangan lalu dikalikannya dengan angka 2.
pada no. 35 banyaknya faktor 2 dari 28 adalah 2. lalu kalikan dengan 2. 2*2 = 4
Untuk semua bilangan ganjil, piring mengembalikan nilai return 1.
Untuk semua bilangan genap, piring akan mencari 2^n terbesar yang membagi x habis tanpa sisa.
No 36 ane dapetnya 94. Ada yg sama g ya??
Masuk untuk menulis jawaban
No. 36
Jumlah faktor 2 dari 15 sampai 45 = 1+16+1+2+1+4+1+2+1+8+1+2+1+4+1+2+1+32+1+2+1+4+1+2+1+8+1+2+1+4+1 = 110
aku dapat 94.
kalo ane dapatnya 99