Tugas Anda adalah menulis sepotong kode yang nol sel saat ini dalam varian Brainfuck itu, masing-masing sel dapat berisi bilangan bulat yang ditandatangani dari besarnya sewenang-wenang, bukan normal 0 hingga 255.
Anda dapat mengasumsikan ada sel l di sebelah kiri dan sel r di sebelah kanan sel saat ini yang awalnya nol. Program Anda hanya dapat mengakses l + r +1 sel ini. Setelah kode Anda berakhir, ia akan membiarkan sel ekstra l + r nol dan pointer ke sel saat ini di posisi semula.
Anda tidak boleh menggunakan input / output apa pun.
Kode dengan l + r terkecil menang. Jika ada seri, kode terpendek akan menang. Dianjurkan untuk juga menyatakan kompleksitas waktu program Anda untuk referensi, di mana n adalah nilai absolut dari bilangan bulat asli dalam sel saat ini.
Alat yang berguna
Anda dapat menguji program Brainfuck dalam variasi ini menggunakan juru bahasa ini di TIO oleh mbomb007 .
Anda juga dapat menggunakan juru bahasa dalam jawaban ini oleh stan (jawaban Python lain mungkin juga berfungsi, tetapi saya tidak menguji).
sumber
Jawaban:
l + r = 0 + 2 = 2,
555351 bytel + r = 1 + 2 = 3,
4644 byteAlgoritme saya sendiri. Pointer harus dimulai dari angka yang perlu di-zeroed Kompleksitas waktu adalah O (n ^ 2).
Bagaimana itu bekerja:
n
.n+1
.n+1-2 = n-1
n-1+3 = n+2
.n+2-4 = n-2
.Kami mengulangi prosesnya, meningkatkan in- / decrement setiap langkah, hingga kami mendapatkan nol.
sumber
l + r = 0 + 2 = 2; 58 byte
Kompleksitasnya adalah O (n ^ 2).
Berikut ini adalah generator program pengujian saya, sehingga Anda dapat melihat bahwa saya benar-benar mencoba mengujinya jika tidak berfungsi ...
sumber