แรงบันดาลใจจากhttp://xkcd.com/710/นี่คือโค้ดกอล์ฟสำหรับมัน
ความท้าทาย
กำหนดจำนวนเต็มบวกที่มากกว่า 0 ให้พิมพ์ลำดับลูกเห็บสำหรับจำนวนนั้น
ลำดับ Hailstone
ดูวิกิพีเดียสำหรับรายละเอียดเพิ่มเติม ..
- ถ้าจำนวนเท่ากันให้หารด้วยสอง
- ถ้าตัวเลขเป็นเลขคี่ให้คูณสามแล้วบวกหนึ่ง
ทำซ้ำกับหมายเลขที่เกิดขึ้นจนกว่าจะถึง 1 (ถ้ายังคงอยู่หลังจาก 1 มันจะวนซ้ำไม่สิ้นสุด1 -> 4 -> 2 -> 1...
)
บางครั้งโค้ดเป็นวิธีที่ดีที่สุดในการอธิบายดังนั้นนี่คือบางส่วนจาก Wikipedia
function collatz(n)
show n
if n > 1
if n is odd
call collatz(3n + 1)
else
call collatz(n / 2)
รหัสนี้ใช้ได้ แต่ฉันกำลังเพิ่มความท้าทายพิเศษ โปรแกรมจะต้องไม่เสี่ยงที่จะล้นสแต็ค ดังนั้นจึงต้องใช้การวนซ้ำหรือการเรียกซ้ำหาง
นอกจากนี้คะแนนโบนัสสำหรับหากสามารถคำนวณตัวเลขจำนวนมากได้และภาษายังไม่มีการใช้งาน (หรือหากคุณใช้การสนับสนุนจำนวนมากอีกครั้งโดยใช้จำนวนเต็มที่มีความยาวคงที่)
กรณีทดสอบ
Number: 21
Results: 21 -> 64 -> 32 -> 16 -> 8 -> 4 -> 2 -> 1
Number: 3
Results: 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1
นอกจากนี้โค้ดกอล์ฟจะต้องมีอินพุตและเอาต์พุตของผู้ใช้แบบเต็ม