|>I|
ลองออนไลน์!
ลองย้อนกลับ!
ใช้งานได้กับอินพุตใด ๆ ที่ไม่มีไบต์ว่าง
คำอธิบาย
ว้าวฉันมาถึงจุดที่ฉันเขียนด้วยมือ ...
|>I|I<|
โปรแกรมเต็มรูปแบบเป็น
| Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
> Move one stack over to the right (which only contains zeros).
I Does nothing on zero.
| Does nothing on zero.
I Does nothing on zero.
< Move back to the initial stack.
| Reverse the input once more.
เช่นเดียวกับในการแก้ปัญหาความท้าทายที่ผ่านมาเนื่องจากคำสั่งกลาง|
ไม่ได้ทำอะไรเลยโปรแกรมทั้งหมดจึงทำเช่นนั้น
|I>|<I|
โปรแกรมตรงกันข้ามเป็นแล้ว
| Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
I Move the -1 one stack to the left and turn it into a +1.
> Move back to the initial stack.
| Reverse it again, but this time without the EOF marker.
< Move back to the left.
I Move the +1 back onto the initial stack and turn it into a -1 again.
| Reverse the entire stack. We now have the -1 as an EOF marker again at the bottom
and the rest of the stack has been reversed three times, i.e. one net reversal.
ที่น่าสนใจถ้าเราใช้โปรแกรมย้อนกลับนี้โดยที่-m
เรายังไม่ได้รับการแก้ปัญหาการทำงานในครั้งนี้ดังนั้นไบต์เพิ่มเติมที่เกิดขึ้นจากการข้าม-m
คือสิ่งที่เราได้รับจากการทำมิเรอร์รหัส
|I<|>I|
ลองออนไลน์!
ลองย้อนกลับ!
คำอธิบาย
เวอร์ชันที่กลับกันของโปรแกรมนี้เป็น|I>|<I|
แบบเดียวกับด้านบนเพื่อให้เราสามารถเพิกเฉยได้ แต่เวอร์ชันที่ไม่กลับมีความแตกต่าง ตั้งแต่<>
ตอนนี้ชี้ไปทางอื่นคำสั่ง center จะไม่ทำอะไรเลยดังนั้นโปรแกรมจึงกลายเป็น cat:
| Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
I Move the -1 one stack to the left and turn it into a +1.
< Move another stack to the left, which contains only zeros.
| Does nothing on zero.
ดังนั้นจึง>I|
ยกเลิกครึ่งแรกของโปรแกรมได้อย่างแน่นอน