Perhatikan potongan program berikut:
function adadeh(n : longint);
var i,j,k : longint;
begin
adadeh:=0;
for i:=1 to n do
for j:=1 to n+1 do
for k:=1 to n+2 do
adadeh:=adadeh+1;
adadeh:=adadeh div 6;
end;
Berapakah nilai n minimal agar adadeh(n) lebih dari 200?
a. 12
b. 10
c. 4
d. 5
e. 6
function adadeh(n : longint);
var i,j,k : longint;
begin
adadeh:=0;
for i:=1 to n do
for j:=1 to n+1 do
for k:=1 to n+2 do
adadeh:=adadeh+1;
adadeh:=adadeh div 6;
end;
@. Pertama, nilai sudah diinisialisasi dengan 0
@. Kemudian mari kita lihat loopingya
Dari situ sudah sangat jelas bahwa :
k = 1 -> n+2
j = 1 -> n+1
i = 1 => n
@. Kemudian, coba kita perhatikan. Setiap kali looping, ia menambah nilai dengan +1 , dengan looping yang sama, artinya :
Saat looping i di jalankan, ia menambahkan +1 sebanyak n+2, begitu pula pada looping lainnya
Maka mungkin bisa digambarkan seperti ini : adadeh = (n+2)(n+1)(n) = (n3 + n2 + 2n2 + 2n)/6
@. Agar lebih cepat, mari langsung kita coba ke opsinya saja
(n3 + n2 + 2n2 + 2n)/6
- Coba 12 => 123 + 122 + 2(12)2 + 2(12) = 1728 + 144 + 288 + 24 = 1728 + 432 + 24 = 1728 + 456 = (2184/6) = 364 [MEMENUHI]
- Coba 10 => 103 + 102 + 2(10)2 + 2(10) = 1000 + 100 + 200 + 20 = 1320 / 6 = 220 [MEMENUHI]
- Coba 6 => 63 + 62 + 2(6)2 + 2(6) = 216 + 36 + 72 + 12 = 216 + 108 + 12 = 228 + 108 = 336 / 6 = 56 [TIDAK MEMENUHI]
Maka nilai minimumnya 10 (B)
Masuk untuk menulis jawaban