เกมต่อท้ายตัวเลข
เขียนฟังก์ชัน / โปรแกรมที่รับพารามิเตอร์จำนวนเต็ม 2 ตัวพารามิเตอร์จำนวนเต็มหรือตัวแปรจำนวนเต็มจำนวนเริ่มต้นและจำนวนสูงสุดของการวนซ้ำซ้ำ รหัสควรทำตัวอย่างเกมต่อไปนี้เพื่อสร้างหมายเลขใหม่และทำซ้ำจนกว่าตัวเลขจะเหลือตัวเลขหลักเดียว เช่น.
3 7 2 = (3 + 7) & (7 + 2) = 10 9
1 0 9 = (1 + 0) & (0 + 9) = 1 9
1 9 = (1 + 9) = 10
1 0 = (1 + 0) = 1
โดยทั่วไปแล้วนำตัวเลขแต่ละหลักและเพิ่มไปยังเพื่อนบ้านแล้วต่อท้ายผลลัพธ์ของการเพิ่มถัดไปเช่นกัน
จำนวนการวนซ้ำสูงสุดคือการป้องกันการวนซ้ำไม่สิ้นสุดและเมื่อถึงค่าสูงสุดจะตีรหัสควรดัมพ์ 5 ขั้นตอนสุดท้ายของจำนวน เอาต์พุตเดียวกันควรเกิดขึ้นเมื่อเสร็จสิ้นด้วยการเข้าถึงตัวเลขหนึ่งหลัก หากเกิดน้อยกว่า 5 ขั้นตอนให้ส่งออกเฉพาะหมายเลขที่ถูกต้องเท่านั้น
ผลลัพธ์ควรปรากฏเช่น ( Step: Number) รวมถึง 5 ขั้นตอนสุดท้ายของขั้นตอนเสร็จสิ้นหรือสิ้นสุดแล้ว:
func(3541, 50) จะสร้างรูปแบบผลลัพธ์ที่แน่นอนนี้:
6: 1411
7: 552
8: 107
9: 17
10: 8
func(3541, 5) จะผลิต:
1: 895
2: 1714
3: 885
4: 1613
5: 774
การคำนวณทั้งหมดเป็น:
1: 895
2: 1714
3: 885
4: 1613
5: 774
6: 1411
7: 552
8: 107
9: 17
10: 8
หากมีน้อยกว่า 5 ขั้นตอนเพียงพิมพ์ขั้นตอนเหล่านั้น
ใช้ libs ในตัวเท่านั้นพารามิเตอร์สามารถมาจากที่ใดก็ได้ (สิ่งที่ง่ายที่สุดสำหรับภาษาที่คุณเลือก) ไม่ จำกัด ขนาดสูงสุดเต็มจำนวนและหากมีจำนวนมากเกินไปให้ปล่อยให้ขัดข้อง
เนื่องจากนี่ไม่ใช่เรื่องยากจากมุมมองปริศนาฉันจะให้จนถึงวันอาทิตย์ที่ 25, 20:00 (UTC + 8) สำหรับการส่งผลงานเพื่อพิจารณาคำตอบที่ได้รับการยอมรับ ณ จุดที่สั้นที่สุดของภาษาใด ๆ จะเป็นผู้ชนะ
แก้ไข:
ขอแสดงความยินดีโฮเวิร์ดชนะด้วย 48 GolfScript คำตอบ
กล่าวถึงเป็นพิเศษเพื่อ marinus ที่ 2 กับ 66 APL คำตอบ
ที่ชื่นชอบส่วนตัวของฉัน (ถูกลำเอียงไปทางจาวาสคริปต์) เป็น core1024 ของคำตอบ
func(3541, 5)ควรพิมพ์ 5 ขั้นตอนหรือ 10 หรือไม่