Fungsi Rekursif
Pelajaran 8 dari 17 dalam kursus Fungsi dalam C di Coddy.
Fungsi rekursif adalah fungsi yang terus memanggil dirinya sendiri.
Contoh terkenal dari fungsi ini adalah saat kita perlu menghitung faktorial sebuah bilangan.
Rumusnya adalah n!=1×2×…×n.
Untuk mencari faktorial suatu bilangan, kita perlu mengalikan semua bilangan dari 1 hingga n.
Contohnya:
4!=1×2×3×4=24Kita bisa mendefinisikan fungsi rekursif seperti ini:
int fact(int n) {
if (n == 1) {
return 1;
}
return n * fact(n - 1);
}Bayangkan kamu memiliki satu set tangga. Untuk mulai menaiki tangga, kamu mulai dari lantai dasar (anak tangga 0). Dalam fungsi rekursif, titik awal ini disebut kasus dasar. Di sinilah fungsi berhenti memanggil dirinya sendiri dan mengembalikan sebuah nilai.
Dalam contoh faktorial, kasus dasarnya adalah saat nnn (bilangan tersebut) bernilai 1. Faktorial dari 1 adalah 1, jadi fungsi mengembalikan 1 tanpa perhitungan lebih lanjut.
Pertama, dilakukan pemeriksaan untuk mengetahui apakah bilangannya sama dengan satu:
if (n == 1) {
return 1;
}Pemanggilan Rekursif:
Untuk bilangan apa pun yang lebih besar dari 1, fungsi mengandalkan versi dirinya yang lebih kecil. Fungsi memanggil dirinya sendiri dengan n−1 (satu anak tangga di bawah). Inilah pemanggilan rekursif:
return n * fact(n - 1);Bayangkan seperti menaiki tangga. Untuk mencapai anak tangga 5, kamu harus mencapai anak tangga 4 terlebih dahulu, lalu anak tangga 3, dan seterusnya. Setiap pemanggilan rekursif seperti melangkah satu anak tangga.
Tantangan
MudahTentukan Fungsi Rekursif:
- Tulis fungsi bernama countdown yang menerima parameter integer n.
- Di dalam fungsi ini, tampilkan nilai n saat ini.
- Jika n lebih besar dari 0, panggil countdown secara rekursif dengan n - 1.
- Jika n adalah 0 atau kurang, tampilkan "Blastoff!".
Contoh: Jika angkanya 3, output-nya akan seperti ini:
3
2
1
Blastoff!
Coba sendiri
#include <stdio.h>
// Definisikan fungsi countdown
int main() {
int start = 5;
// Panggil fungsi tersebut
return 0;
}Semua pelajaran di Fungsi dalam C
Latihan sendiri: Compiler C online