Perhatikan fungsi berikut
function coba(a:integer):string;
var
b : integer;
str : string;
begin
if (a=0) then
coba:= ''
else
begin
b := a mod 2;
if (b=0) then str:=’0’
else str:=’1’;
coba:= coba(a div 2)+str;
end;
end;
nilai yang dikembalikan oleh pemanggilan fungsi coba(155) adalah?
10011001 Bukanlah jawaban yang tepat.
Jawaban yang benar sebagai berikut:
coba(155) = coba(77)+"1" = coba(38)+"1"+"1" = coba(19)+"0"+"1"+"1" = coba(9)+"1"+"0"+"1"+"1" = coba(4)+"1"+"1"+"0"+"1"+"1" = coba(2)+"0"+"1"+"1"+"0"+"1"+"1" = coba(1)+"0"+"0"+"1"+"1"+"0"+"1"+"1" = coba(0)+"1"+"0"+"0"+"1"+"1"+"0"+"1"+"1" = ""+"1"+"0"+"0"+"1"+"1"+"0"+"1"+"1" ="10011011"
Jika anda cerdik, hanya dengan memperhatikan kode, anda akan sadar bahwa fungsi kode adalah mengubah bilangan base 10 jadi base 2.
Pernah Jago OSK
bukannya ini seperti program yang merubah N ke bentuk bilangan biner ?
saya coba dan hasilnya 10011011
Trust me, I'm Handsome :v
Menggunakan pola rekursif coba(77) + '1' coba(38)+'1'+'1' coba(19)+'11'+'0' coba(9)+'1'+'011' coba(4)+'1'+'1011' coba(2)+'0'+'11011' coba(1)+'0'+'011011' coba(0)+'1'+'0011011' hasil = '10011001'
Masuk untuk menulis jawaban