INFORMASI
uran font soal: A A A
Perhatikan potongan program berikut ini:
int kucing(int tikus, int keju) {
if (tikus>keju) {
return 0,
} else {
return tikus + kucing(tikus * 2 +1,
keju);
}
}
Oal nomor 6
Jawaban:
2036
Penjelasan:
Karena fungsi tersebut kucing melakukan rekursi dengan mengubah nilai tikus menjadi 2 kali + 1 nilai sebelumnya yang kemudian semua nilai tikus akan dijumlahkan. Fungsinya akan berhenti melakukan rekursi jika nilai tikus lebih besar dari keju.
Oleh karena itu nilai tikus akan menjadi
(1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047) Namun karena nilai yang lebih besar dari 2018 tidak dihitung, fungsi akan menghasilkan 2036.