Latihan 2
Latihan: Pangkat & Jumlah Digit
Implementasikan dua fungsi rekursif: menghitung pangkat bilangan dan menjumlahkan semua digit suatu angka.
Studi Kasus
Kamu diminta membuat dua fungsi rekursif yang sering muncul dalam soal-soal pemrograman:
- Pangkat — menghitung
basisdipangkatkaneksponentanpa menggunakanpow()dari library. - Jumlah Digit — menjumlahkan semua digit penyusun sebuah angka bulat.
Keduanya memiliki pola rekursif yang berbeda, sehingga baik untuk melatih fleksibilitas berpikir rekursif.
Pola Rekursif
Pangkat:
pangkat(2, 4)
= 2 × pangkat(2, 3)
= 2 × 2 × pangkat(2, 2)
= 2 × 2 × 2 × pangkat(2, 1)
= 2 × 2 × 2 × 2 × pangkat(2, 0)
= 2 × 2 × 2 × 2 × 1 // base case!
= 16Jumlah Digit:
jumlahDigit(1234)
= (1234 % 10) + jumlahDigit(1234 / 10)
= 4 + jumlahDigit(123)
= 4 + 3 + jumlahDigit(12)
= 4 + 3 + 2 + jumlahDigit(1)
= 4 + 3 + 2 + 1 + jumlahDigit(0)
= 4 + 3 + 2 + 1 + 0 // base case!
= 10Yang Harus Dilakukan
pangkat— implementasikan fungsi rekursif: base caseeksponen == 0kembalikan1, rekursif kembalikanbasis * pangkat(basis, eksponen - 1).jumlahDigit— implementasikan fungsi rekursif: base casen == 0kembalikan0, rekursif kembalikan(n % 10) + jumlahDigit(n / 10).mainsudah ditulis lengkap — jalankan dan pastikan output sesuai contoh.
Contoh Output yang Diharapkan
=== Tabel Pangkat 2 ===
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
=== Jumlah Digit ===
jumlahDigit(12) = 3
jumlahDigit(345) = 12
jumlahDigit(1024) = 7
jumlahDigit(99999) = 45