Menu
CoddyTech

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.

challenge icon

Tantangan

Mudah

Buat 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 n yang mewakili bilangan yang faktorialnya akan dihitung

Programmu harus:

  1. Membuat fungsi rekursif bernama factorial yang menerima parameter bilangan bulat dan mengembalikan bilangan bulat
  2. Fungsi tersebut harus menerapkan kasus dasar: jika n kurang dari atau sama dengan 1, kembalikan 1
  3. Fungsi tersebut harus menerapkan langkah rekursif: kembalikan n dikalikan dengan faktorial dari n-1
  4. Di fungsi main, baca nilai input
  5. Panggil fungsi faktorial dengan nilai input
  6. 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;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C++ online