Faktorial Rekursif
Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 46 dari 56.
Faktorial suatu angka adalah contoh yang tepat untuk menunjukkan rekursi dalam aksi. Faktorial n (ditulis sebagai n!) adalah hasil kali semua bilangan bulat positif dari 1 hingga n. Contohnya, 5! = 5 × 4 × 3 × 2 × 1 = 120.
Faktorial sangat cocok untuk rekursi karena dapat didefinisikan dengan mengacu pada dirinya sendiri: n! = n × (n-1)!. Artinya, untuk menghitung 5!, kamu mengalikan 5 dengan 4!, dan untuk menghitung 4!, kamu mengalikan 4 dengan 3!, dan seterusnya.
Berikut tampilan fungsi faktorial rekursif:
int factorial(int n) {
if (n <= 1) { // Kasus dasar: 0! dan 1! sama-sama bernilai 1
return 1;
}
return n * factorial(n - 1); // Langkah rekursif: n! = n × (n-1)!
}Kasus dasar menghentikan rekursi saat n mencapai 1 atau 0, lalu mengembalikan 1. Langkah rekursif mengalikan bilangan saat ini dengan faktorial dari bilangan berikutnya yang lebih kecil. Saat kamu memanggil factorial(4), fungsi ini menghitung 4 × 3 × 2 × 1 dengan melakukan pemanggilan berturut-turut hingga mencapai kasus dasar, lalu mengalikan semua hasilnya saat pemanggilan tersebut kembali.
Tantangan
MudahBuat program yang menerapkan fungsi faktorial rekursif dan menggunakannya untuk menghitung faktorial dari berbagai nilai input. Tantangan ini akan menguji pemahamanmu tentang cara kerja rekursi dengan meminta sebuah fungsi memanggil dirinya sendiri menggunakan parameter yang diubah hingga mencapai kasus dasar.
Input berikut akan diberikan:
- Sebuah bilangan bulat
nyang mewakili bilangan yang faktorialnya akan dihitung
Programmu harus:
- Membuat fungsi rekursif bernama
factorialyang menerima parameter bilangan bulat dan mengembalikan bilangan bulat - Fungsi tersebut harus menerapkan kasus dasar: jika
nkurang dari atau sama dengan 1, kembalikan 1 - Fungsi tersebut harus menerapkan langkah rekursif: kembalikan
ndikalikan dengan faktorial darin-1 - Di fungsi main, baca nilai input
- Panggil fungsi faktorial dengan nilai input
- Cetak hasilnya menggunakan format yang ditentukan
Gunakan format output persis seperti berikut:
Factorial of [n] is [result]Ingat bahwa fungsi faktorial harus memanggil dirinya sendiri dengan nilai yang lebih kecil setiap kali, semakin mendekati kasus dasar pada setiap pemanggilan rekursif. Kasus dasar mencegah rekursi tak terbatas dengan menghentikannya saat n mencapai 1 atau 0. Langkah rekursif mengalikan bilangan saat ini dengan faktorial dari bilangan berikutnya yang lebih kecil, sehingga membentuk hasil akhir saat pemanggilan fungsi mengembalikan nilainya.
Coba sendiri
#include <iostream>
using namespace std;
// TODO: Tulis fungsi faktorialmu di sini
int main() {
// Baca input
int n;
cin >> n;
// TODO: Panggil fungsi faktorial dan simpan hasilnya
// Tampilkan hasilnya
cout << "Factorial of " << n << " is " << result << endl;
return 0;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Pointer dan Memori
Apa Itu Pointer?Operator Address-OfOperator DereferencePointer NullPointer dan ArrayMemori Dinamis dengan 'new'Membebaskan Memori dengan 'delete'Rangkuman: Latihan Pointer2Vektor (array Dinamis)
Memperkenalkan std::vectorMembuat VektorMenambahkan ElemenMengakses ElemenUkuran VektorIterasi dengan for loopFor loop Berbasis RentangMenghapus ElemenRangkuman: Operasi VektorLatihan sendiri: Compiler C++ online