Bagaimanakah Rekursi Beroperasi dalam Fungsi \'FindSequence\'?

Susan Sarandon
Lepaskan: 2024-10-18 07:55:03
asal
497 orang telah melayarinya

How Does Recursion Operate in the

Menyelidiki Rekursi "FindSequence"

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!
Salin selepas log masuk

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!

sumber:php
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!