Syarat keluar dari fungsi rekursif C++ termasuk: Syarat garis dasar: Semak sama ada fungsi mencapai keadaan yang boleh mengembalikan hasil secara langsung, biasanya menilai sama ada keadaan atau nilai parameter tertentu memenuhi ambang. Syarat penamatan rekursif: Alternatif kepada atau sebagai tambahan kepada syarat garis dasar, memastikan fungsi berhenti selepas beberapa panggilan rekursif tertentu, dengan menjejak kedalaman rekursif atau menetapkan had kedalaman rekursif maksimum.
Syarat keluar untuk fungsi rekursif dalam C++
Fungsi rekursif menyelesaikan masalah dengan memanggil diri mereka berulang kali. Untuk mengelakkan terperangkap dalam gelung rekursif tak terhingga, syarat keluar yang jelas mesti ditentukan. Dalam C++, syarat keluar biasanya dilaksanakan dengan cara berikut:
1 Syarat garis dasar:
bool isEven(int n) { if (n == 0) { // 基线条件:当 n 为 0 时,返回 true return true; } else { return isEven(n - 1); // 递归调用 } }
2. Syarat penamatan rekursif:
int fibonacci(int n) { if (n <= 1) { // 基线条件:当 n <= 1 时,返回 n return n; } else if (n > MAX_RECURSION_DEPTH) { // 递归终止条件:当递归深度超过限制时,返回错误值 return -1; } else { return fibonacci(n - 1) + fibonacci(n - 2); // 递归调用 } }
Kes praktikal
Fungsi contoh berikut mengira pemfaktoran nombor tertentu:
int factorial(int n) { if (n == 0) { // 基线条件:当 n 为 0 时,返回 1 return 1; } else { return n * factorial(n - 1); // 递归调用 } }
Atas ialah kandungan terperinci Apakah syarat keluar untuk fungsi rekursif dalam C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!