Sebuah pertanyaan yang mirip dengan ini telah diajukan beberapa tahun yang lalu , tetapi yang ini lebih rumit.
Tantangannya sederhana. Menulis sebuah program (dalam bahasa pilihan Anda) yang berulang kali mengeksekusi kode tanpa menggunakan struktur pengulangan seperti while
, for
, do while
, foreach
atau goto
( Jadi untuk semua nitpickers Anda, Anda tidak dapat menggunakan loop ). Namun, rekursi tidak diperbolehkan, dalam fungsi yang menamakan dirinya sendiri (lihat definisi di bawah) . Itu akan membuat tantangan ini terlalu mudah.
Tidak ada batasan pada apa yang perlu dieksekusi dalam loop, tetapi posting penjelasan dengan jawaban Anda sehingga orang lain dapat memahami dengan tepat apa yang sedang dilaksanakan.
Bagi mereka yang mungkin terpaku pada definisi, definisi loop untuk pertanyaan ini adalah:
A programming language statement which allows code to be repeatedly executed.
Dan definisi rekursi untuk pertanyaan ini akan menjadi definisi fungsi rekursif standar Anda:
A function that calls itself.
Pemenang akan menjadi jawaban yang paling banyak mendapat dukungan pada 16 Juli pukul 10 pagi waktu bagian timur. Semoga berhasil!
MEMPERBARUI:
Untuk menenangkan kebingungan yang masih diungkapkan ini dapat membantu:
Aturan sebagaimana dinyatakan di atas:
- Jangan gunakan loop atau goto
- Fungsi tidak bisa menyebut diri mereka sendiri
- Lakukan apa pun yang Anda inginkan di 'lingkaran'
Jika Anda ingin menerapkan sesuatu dan aturannya tidak secara eksplisit melarangnya, silakan dan lakukan. Banyak jawaban sudah melanggar aturan.
rep(f){f();f();}
- ini adalah pernyataan (pernyataan fungsi adalah pernyataan dalam beberapa bahasa) yang memungkinkan mengeksekusi kode berulang kali. Apakah itu dilarang. Anda meminta kode untuk mengimplementasikan loop. Jika kode itu secara sintaksis merupakan pernyataan, Anda baru saja menolaknya. Contoh lain: f(b) { b(); g(b); }; g(b) { f(b); }
. Saya akan mengatakan f
adalah fungsi rekursif (dengan menjadi saling rekursif dengan g
). Apakah itu dilarang?
function A
panggilanfunction B
danfunction B
panggilanfunction A
sementara 1 fungsi melakukan sesuatu. Karena fungsi tersebut tidak menyebut dirinya sendiri, fungsi tersebut harus valid berdasarkan kriteria ^. ^