// Contoh Bab 06: rekursi dengan kasus dasar. // // Compile: g++ -std=c++17 -O2 -o rekursi exercises/06/03-rekursi.cpp // Jalankan: ./rekursi #include using namespace std; long long faktorial(int n) { if (n <= 1) return 1; // kasus dasar return n * faktorial(n - 1); // langkah mengecil } // Cetak setiap langkah supaya urutan pemanggilannya terlihat. long long faktorial_runut(int n, int dalam) { for (int i = 0; i < dalam; i++) cout << " "; cout << "faktorial(" << n << ")\n"; if (n <= 1) return 1; return n * faktorial_runut(n - 1, dalam + 1); } int main() { cout << faktorial(4) << "\n"; cout << faktorial_runut(4, 0) << "\n"; return 0; }