Penjelasan terperinci tentang rekursi fungsi C++: definisi dan prinsip rekursi

WBOY
Lepaskan: 2024-05-01 12:45:01
asal
298 orang telah melayarinya

Rekursi ialah teknik pengaturcaraan di mana fungsi memanggil dirinya sendiri, dicapai dengan memecahkan masalah kepada masalah yang lebih kecil, menetapkan syarat sempadan dan mengurangkan masalah. Mengambil jujukan Fibonacci sebagai contoh, fungsi rekursif menggunakan keadaan sempadan (n ≤ 1) dan masalah penurunan (fib(n - 1) + fib(n - 2)) untuk menyelesaikan item jujukan secara beransur-ansur.

C++ 函数递归详解:递归的定义和原理

C++ Fungsi Rekursi Penjelasan Terperinci: Definisi dan Prinsip Rekursi

Definisi dan Prinsip

Rekursi ialah teknik pengaturcaraan itu sendiri. Fungsi ini menghantar data apabila ia memanggil dirinya sendiri, dan mengembalikan hasilnya apabila ia selesai memproses.

Konsep teras rekursi ialah:

  • Masalah penguraian fungsi: menguraikan masalah besar kepada satu siri masalah yang lebih kecil.
  • Syarat sempadan: Tentukan keadaan sempadan yang menamatkan rekursi untuk mengelakkan gelung tak terhingga.
  • Masalah berkurangan: Dalam setiap panggilan rekursif, submasalah menjadi lebih kecil, akhirnya mencapai keadaan sempadan.

Kes praktikal: Cari jujukan Fibonacci

Jujukan Fibonacci ialah jujukan integer, dua nombor pertamanya ialah 0 dan 1, dan setiap nombor berikutnya ialah hasil tambah dua nombor sebelumnya. Contohnya: 0, 1, 1, 2, 3, 5, 8, 13, ....

Kita boleh menggunakan fungsi rekursif untuk menyelesaikan jujukan Fibonacci:

int fib(int n) {
  if (n <= 1) {
    return n;
  } else {
    return fib(n - 1) + fib(n - 2);
  }
}
Salin selepas log masuk

Pecahan langkah:

  1. Syarat sempadan: Apabila n kurang daripada atau sama dengan 1 >n. n 小于或等于 1 时,直接返回 n
  2. 递减问题:n 大于 1 时,函数递归调用自身两次,求解 n - 1n - 2
  3. Mengurangkan masalah: Apabila n lebih besar daripada 1, fungsi memanggil dirinya secara rekursif dua kali untuk menyelesaikan n - 1 dan n - 2 Nombor Fibonacci dan tambah hasilnya.
Keputusan akhir:

Selepas berbilang panggilan rekursif, jujukan Fibonacci akan dikira secara beransur-ansur dan akhirnya dikembalikan kepada panggilan fungsi awal.

Contoh penggunaan:

🎜
int main() {
  int result = fib(10);
  cout << "斐波那契数列第 10 项:" << result << endl;
  return 0;
}
Salin selepas log masuk
🎜Output: 🎜
斐波那契数列第 10 项:55
Salin selepas log masuk

Atas ialah kandungan terperinci Penjelasan terperinci tentang rekursi fungsi C++: definisi dan prinsip rekursi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan