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++ 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:
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); } }
Pecahan langkah:
n
小于或等于 1 时,直接返回 n
。n
大于 1 时,函数递归调用自身两次,求解 n - 1
和 n - 2
n
lebih besar daripada 1, fungsi memanggil dirinya secara rekursif dua kali untuk menyelesaikan n - 1
dan n - 2
Nombor Fibonacci dan tambah hasilnya. 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; }
斐波那契数列第 10 项:55
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!