เราทุกคนรู้ว่าเมื่อใดก็ตามที่จำนวนตรรกยะเขียนเป็นทศนิยมผลลัพธ์จะสิ้นสุดลงหรือ (เป็นระยะ) ในที่สุด ตัวอย่างเช่นเมื่อเขียน 41/42 เป็นทศนิยมผลลัพธ์จะเป็น
0.9 761904 761904 761904 761904 761904 761904 761904 ...
ด้วยลำดับเริ่มต้นของตัวเลข0.9
ตามด้วยลำดับ761904
ซ้ำแล้วซ้ำอีก (สัญลักษณ์ที่สะดวกสำหรับสิ่งนี้คือ0.9(761904)
ที่วงเล็บล้อมรอบบล็อกของตัวเลขที่ซ้ำกัน)
เป้าหมายของคุณในการท้าทายนี้คือการใช้จำนวนตรรกยะเป็นบวกลบตัวเลขแรกที่เป็นส่วนหนึ่งของลำดับการทำซ้ำและส่งกลับจำนวนตรรกยะที่เกิดขึ้น ตัวอย่างเช่นถ้าเราทำสิ่งนี้กับ 41/42 เราจะได้
0.9 61904 761904 761904 761904 761904 761904 761904 ...
หรือ0.9(619047)
สั้น ๆ ซึ่งก็คือ 101/105
หากจำนวนตรรกยะมีการขยายทศนิยมที่สิ้นสุดเช่น 1/4 = 0.25
จะไม่มีอะไรเกิดขึ้น คุณสามารถนึกได้ว่า 1/4 ไม่ว่าจะเป็น0.250000000...
หรือ0.249999999...
ในกรณีใดกรณีหนึ่งการลบตัวเลขแรกของส่วนที่ทำซ้ำจะทำให้หมายเลขนั้นไม่เปลี่ยนแปลง
รายละเอียด
- อินพุตเป็นจำนวนตรรกยะเป็นบวกไม่ว่าจะเป็นคู่ของจำนวนเต็มบวกที่เป็นตัวแทนตัวเศษและส่วนหรือ (หากภาษาที่คุณเลือกอนุญาตให้ใช้และคุณต้องการ) เป็นวัตถุเชิงเหตุผลจำนวนหนึ่ง
- ผลลัพธ์ยังเป็นจำนวนตรรกยะเช่นกันในรูปแบบใดรูปแบบหนึ่ง หากผลลัพธ์เป็นจำนวนเต็มคุณอาจส่งคืนจำนวนเต็มแทนที่จะเป็นจำนวนตรรกยะ
- หากใช้ตัวเลขเป็นคู่คุณอาจคิดว่ามันค่อนข้างดี หากผลิตตัวเลขเป็นคู่คุณจะต้องทำให้มันค่อนข้างสำคัญ
- ระวังว่าคุณพบตัวเลขแรกที่เริ่มบล็อกการทำซ้ำ ตัวอย่างเช่นหนึ่งสามารถเขียน 41/42 เป็น
0.97(619047)
แต่ที่ไม่ได้ทำ 2041/2100 (ด้วยการขยายทศนิยม0.97(190476)
) คำตอบที่ถูกต้อง - คุณอาจสมมติว่าในอินพุตที่คุณได้รับตัวเลขตามช่วงเวลาแรกคือหลังจุดทศนิยมทำให้
120/11
=10.909090909...
อินพุตไม่ถูกต้อง: (ตัวเลขเป็นครั้งแรกของงวดอาจพิจารณาเป็น0
ใน10
) คุณสามารถทำอะไรก็ได้ที่คุณชอบในอินพุตดังกล่าว - นี่คือcode-golf : ทางออกที่สั้นที่สุดชนะ
กรณีทดสอบ
41/42 => 101/105
101/105 => 193/210
193/210 => 104/105
104/105 => 19/21
1/3 => 1/3
1/4 => 1/4
2017/1 => 2017/1
1/7 => 3/7
1/26 => 11/130
1234/9999 => 2341/9999
(2017,1)
.)
2/4
เกิดขึ้นได้ในการป้อนข้อมูลหรือไม่
120/11
คำตอบที่ถูกต้อง111/11
หรือ210/11
?
111/11
ยกเว้นว่าคำตอบที่ได้รับความนิยมสูงที่สุดในขณะนี้จะกลับ210/11
มาดังนั้นฉันจะให้คุณเลือกที่จะหลีกเลี่ยงคำตอบที่มีอยู่
2017
แทนได้2017/1
ไหม