Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Rekursi C++

Rekursi C++

Dalam tutorial ini, kita akan belajar tentang fungsi rekursif di C++ dan cara kerjanya dengan bantuan contoh.

Fungsi yang memanggil dirinya sendiri dikenal sebagai fungsi rekursif. Dan, teknik ini dikenal sebagai rekursi.


Kerja Rekursi di C++

void recurse()
{
    ... .. ...
    recurse();
    ... .. ...
}

int main()
{
    ... .. ...
    recurse();
    ... .. ...
}

Gambar di bawah menunjukkan cara kerja rekursi dengan memanggil dirinya sendiri berulang kali.

Rekursi berlanjut sampai beberapa kondisi terpenuhi.

Untuk mencegah rekursi tak terbatas, pernyataan if...else (atau pendekatan serupa) dapat digunakan di mana satu cabang membuat panggilan rekursif dan yang lainnya tidak.


Contoh 1:Faktorial Angka Menggunakan Rekursi

// Factorial of n = 1*2*3*...*n

#include <iostream>
using namespace std;

int factorial(int);

int main() {
    int n, result;

    cout << "Enter a non-negative number: ";
    cin >> n;

    result = factorial(n);
    cout << "Factorial of " << n << " = " << result;
    return 0;
}

int factorial(int n) {
    if (n > 1) {
        return n * factorial(n - 1);
    } else {
        return 1;
    }
}

Keluaran

Enter a non-negative number: 4
Factorial of 4 = 24

Kerja Program Faktorial

Seperti yang kita lihat, factorial() fungsi memanggil dirinya sendiri. Namun, selama setiap panggilan, kami telah menurunkan nilai n oleh 1 . Kapan n kurang dari 1 , factorial() fungsi akhirnya mengembalikan output.


Keuntungan dan Kerugian Rekursi

Di bawah ini adalah pro dan kontra menggunakan rekursi di C++.


Keuntungan Rekursi C++

  • Itu membuat kode kita lebih pendek dan bersih.
  • Rekursi diperlukan dalam masalah yang berkaitan dengan struktur data dan algoritme lanjutan, seperti Graph dan Tree Traversal.

Kekurangan Rekursi C++

  • Membutuhkan banyak ruang tumpukan dibandingkan dengan program iteratif.
  • Ini menggunakan lebih banyak waktu prosesor.
  • Ini bisa lebih sulit untuk di-debug dibandingkan dengan program iteratif yang setara.

Bahasa C

  1. Operator C++
  2. Komentar C++
  3. C - Rekursi
  4. Ikhtisar C++
  5. Konstanta/Literal C++
  6. Operator di C++
  7. Angka dalam C++
  8. Referensi C++
  9. Template C++
  10. C++ Preprosesor