Javascript Fasih memperkenalkan masalah yang mencabar: menulis fungsi yang menjana urutan penambahan dan pendaraban untuk mencapai nombor matlamat yang diberikan . Kod yang disediakan menggunakan rekursi, yang menimbulkan persoalan tentang pengendaliannya.
Dalam fungsi findSequence terdapat carian fungsi bersarang. Fungsi ini secara rekursif meneroka dua kemungkinan penjelmaan daripada nombor semasa: menambah 5 atau mendarab dengan 3. Setiap penjelmaan menghasilkan nombor baharu dan proses berterusan sehingga sama ada matlamat tercapai atau nombor semasa melebihi matlamat.
Pada setiap langkah, representasi tekstual ungkapan itu dihantar bersama. Sebagai contoh, bermula dengan nombor 1, ungkapan awal ialah "1". Jika penambahan 5 dipilih, ungkapan menjadi "(1 5)". Dengan merekodkan ungkapan ini, fungsi menjejaki langkah yang diambil untuk mencapai setiap nombor.
Jika matlamat dicapai, ungkapan daripada langkah terakhir mewakili urutan yang sah. Jika tidak, fungsi mengembalikan null, menunjukkan kegagalan. Berbilang panggilan rekursif dibuat, masing-masing meneroka laluan yang berbeza sehingga jujukan yang sah ditemui atau semua laluan telah habis.
Untuk menggambarkan rekursi, mari kita pertimbangkan untuk mencari jujukan untuk nombor matlamat 14.
(1, "1") (5, "1 + 5") (10, "(1 + 5) + 5") (15, "((1 + 5) + 5) + 5") // Discard, exceeds goal (30, "((1 + 5) + 5) * 3") // Discard, exceeds goal (15, "(1 + 5) * 3") // Discard, exceeds goal (3, "1 * 3") (8, "(1 * 3) + 5") (13, "((1 * 3) + 5) + 5") (18, "(((1 * 3) + 5) + 5) + 5") // Discard, exceeds goal (39, "(((1 * 3) + 5) + 5) * 3") // Discard, exceeds goal (24, "((1 * 3) + 5) * 3") // Discard, exceeds goal (9, "(1 * 3) * 3") (14, "((1 * 3) * 3) + 5") // Success!
Melalui proses rekursi secara berperingkat ini, fungsi akhirnya menemui urutan: "((1 3) 3) 5", yang mewakili penambahan 5 kepada hasil darab 1 dan 3 kiub .
Atas ialah kandungan terperinci Bagaimanakah Rekursi Beroperasi dalam Fungsi 'FindSequence'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!