>>>>,[[<]<<+>>>[>],]<[<]<+<[>>+<[-<-<+>>]<<++[->>+<<]>]>[-]>>[<[->.[-]<[->+<]<+[->+<]>>]++++++++++.[-]<[->+<]>>]
ลองออนไลน์!
ปลอดภัยในรสชาติของ BF ที่ไม่ปิดบังเซลล์ด้วย256ไม่รองรับไบต์ว่าง
ลบลูกศรขวาเริ่มต้นหากรสชาติสนับสนุนหน่วยความจำเชิงลบสำหรับการบันทึก 4 ไบต์
คำอธิบาย
โปรแกรมแบ่งออกเป็น 3 ขั้นตอน:
Stage 1: >>>>,[[<]<<+>>>[>],]<[<]
Stage 2: <+<[>>+<[-<-<+>>]<<++[->>+<<]>]>[-]>>
Stage 3: [<[->.[-]<[->+<]<+[->+<]>>]++++++++++.[-]<[->+<]>>]
ด่าน 1
ในขั้นตอนนี้เราใส่ตัวละครทั้งหมดลงบนเทปในขณะที่ยังคงนับจำนวนตัวละคร
นี่คือเทปสำหรับอินพุตabcdefghiหลังจากเทปนี้:
000 009 000 000 095 096 097 098 099 100 101 102 103
^
009คือนับ
สำหรับตัวละครแต่ละตัวเราจะย้ายศูนย์แรกทางซ้าย[<]แล้วเพิ่มอีกหนึ่งตัวเพื่อนับ<<+>>>จากนั้นย้ายไปที่ศูนย์ขวาสุด[>]เพื่อเตรียมพร้อมสำหรับตัวละครถัดไป
ด่าน 2
สเตจนี้ทำสแควร์รูทของความยาวที่เก็บไว้ในเซลล์ที่สอง
มันจะทำการลบ1, 3, 5, 7, ...ไปเรื่อย ๆ จนกว่าจำนวนจะถึงศูนย์ในขณะที่ยังคงตรวจสอบจำนวนการทำซ้ำ
1 + 3 + 5 + ...มันทำงานได้เนื่องจากหมายเลขตารางสามารถแสดงเป็น
ด่าน 3
nแสดงว่ารากที่สองของความยาวที่พบข้างต้น
สเตจนี้ส่งออกnอักขระในแต่ละครั้งจากนั้นออกบรรทัดใหม่จนกระทั่งเทปถูกเคลียร์