Dasar-Dasar Rekursi
Termasuk bagian Dasar-Dasar dalam perjalanan C di Coddy. Pelajaran 50 dari 63.
Rekursi adalah teknik ketika sebuah fungsi memanggil dirinya sendiri untuk menyelesaikan masalah. Ini seperti menyelesaikan masalah besar dengan memecahnya menjadi masalah-masalah lebih kecil yang serupa.
Mari kita lihat fungsi rekursif sederhana yang menghitung faktorial:
int factorial(int n) {
// Kasus dasar: faktorial dari 0 atau 1 adalah 1
if (n <= 1) {
return 1;
}
// Kasus rekursif: n! = n * (n-1)!
return n * factorial(n - 1);
}Setiap fungsi rekursif memerlukan:
- Kasus dasar untuk menghentikan rekursi
- Kasus rekursif yang bergerak menuju kasus dasar
Sebagai contoh, menghitung factorial(3):
- factorial(3) memanggil factorial(2)
- factorial(2) memanggil factorial(1)
- factorial(1) mengembalikan 1 (kasus dasar)
- factorial(2) menghasilkan 2 * 1 = 2
- factorial(3) menghasilkan 3 * 2 = 6
Tantangan
MudahBuat fungsi bernama sumToN yang menggunakan rekursi untuk menghitung jumlah bilangan dari 1 hingga n.
Contoh:
- sumToN(3) harus mengembalikan 6 (1 + 2 + 3)
- sumToN(5) harus mengembalikan 15 (1 + 2 + 3 + 4 + 5)
Fungsimu harus:
- Menggunakan kasus dasar saat n adalah 1 (mengembalikan 1)
- Jika tidak, mengembalikan n ditambah jumlah bilangan dari 1 hingga (n-1)
Coba sendiri
#include <stdio.h>
// Tulis fungsi sumToN-mu di sini
// Jangan ubah fungsi main()
int main() {
int n;
scanf("%d", &n);
printf("%d", sumToN(n));
return 0;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
2Variabel
Tipe DataBilangan BulatFloat - DoubleKarakterBooleanKonstantaDasar printfAturan Penamaan VariabelKonversi Tipe Bagian 1Konversi Tipe Bagian 2Tantangan Rangkuman3Operator
Operator AritmetikaOperator ModuloInkrementasi/PenurunanOperator PenugasanOperator RelasionalOperator Logika Bagian 1Operator Logika Bagian 2Operator Logika Bagian 3Tantangan RangkumanLatihan sendiri: Compiler C online