Untuk penyelesaian ini, saya mendapati cara terbaik ialah menggunakan rekursi.
Rekursi ialah apabila fungsi memanggil dirinya sendiri untuk menyelesaikan bahagian masalah yang lebih kecil. Ia seperti menyelesaikan teka-teki besar dengan memecahkannya kepada teka-teki yang lebih kecil dan serupa. Setiap kali fungsi memanggil dirinya sendiri, ia berfungsi pada bahagian yang lebih kecil daripada masalah asal.
Rekursi mempunyai dua bahagian utama:
Kes Asas:
Ini adalah apabila rekursi berhenti. Ia adalah versi masalah yang paling mudah. Fikirkan ia sebagai "tiang gol." Setelah dicapai, fungsi berhenti memanggil dirinya sendiri dan mula mengembalikan hasil.
Dalam kes kami, ini ialah apabila indeks == panjang parameter persamaan.
Kes Rekursif:
Ini adalah apabila fungsi memanggil dirinya sendiri untuk menyelesaikan masalah yang lebih kecil.
Ia seperti mengambil langkah lebih dekat ke kes asas setiap kali.
Dalam teka-teki, matlamatnya adalah untuk menyemak sama ada nombor sasaran boleh dibuat dengan menggunakan operator ( , *, ||) antara satu siri nombor.
Inilah cabarannya:
Cuba gunakan antara nombor semasa dan nombor seterusnya.
Cuba gunakan * antara nombor semasa dan nombor seterusnya.
Cuba gabungkan dua nombor menggunakan || (penggabungan).
Teruskan proses ini sehingga sama ada:
Semua nombor digunakan, dan hasilnya sama dengan sasaran (Kes Asas)
atau
Semua kemungkinan diterokai tanpa mencari padanan (Kes Rekursif)
Anda boleh mencari penyelesaian dalam kedua-dua Python & C# di sini
Seperti biasa, sila ikuti saya di twitter untuk mendapatkan lebih banyak petua, penyelesaian, artikel & catatan blog merentas pelbagai media.
Atas ialah kandungan terperinci AoC - Pembaikan DayBridge. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!