ครู Precalc ของฉันมีหนึ่งในปัญหาที่เขาโปรดปรานที่เขาสร้างขึ้น (หรือมีแนวโน้มที่จะขโมยแรงบันดาลใจจากxkcd ) ที่เกี่ยวข้องกับแถวของnโถฉี่ "รุกฆาต" เป็นสถานการณ์ที่ทุกปัสสาวะมีอยู่แล้วหรือมีปัสสาวะอยู่ถัดจากพวกเขา ยกตัวอย่างเช่นถ้าเป็นคนที่เป็นXแล้ว
X-X--X
ถือว่ารุกฆาต โปรดทราบว่าคนที่ไม่สามารถครอบครองปัสสาวะถัดจากปัสสาวะที่ถูกครอบครองแล้ว
งาน
โปรแกรมของคุณจะใช้ตัวเลขstdin, args ของบรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชัน โปรแกรมของคุณจะพิมพ์ออกมาหรือส่งกลับจำนวนวิธีที่รุกฆาตสามารถเกิดขึ้นได้กับจำนวนของโถฉี่
ตัวอย่าง
0 -> 1(นับกรณี null เป็นรุกฆาต)
1 -> 1( X)
2 -> 2( X-หรือ-X)
3 -> 2( X-Xหรือ-X-)
4 -> 3( X-X-, -X-XหรือX--X)
5 -> 4( X-X-X, X--X-, -X-X-หรือ-X--X)
6 -> 5( X-X-X-, X--X-X, X-X--X, -X--X-หรือ-X-X-X)
7 -> 7( X-X-X-X, X--X-X-, -X-X--X, -X--X-X, X-X--X-, X--X--Xหรือ-X-X-X-)
8 -> 9( -X--X--X, -X--X-X-, -X-X--X-, -X-X-X-X, X--X--X-, X--X-X-X, X-X--X-X, X-X-X--X, X-X-X-X-)
...
เกณฑ์การให้คะแนน
โปรแกรมที่เล็กที่สุดเป็นไบต์ชนะ
''มีการติดตั้งตรงหนึ่งซึ่งเป็นรุกฆาตและว่า นี่เหมือนกับแฟคทอเรียลและพีชคณิต 0! = 1 เนื่องจากมีวิธีการจัดเรียง 0 รายการอย่างแน่นอน