งานของคุณคือให้เอาท์พุทx
2*x
ถูกต้องง่าย! แต่มีการจับ: x
จะได้รับเป็นเศษส่วนต่อเนื่อง (อาจไม่มีที่สิ้นสุด) และผลผลิตจะต้องเป็นเศษส่วนต่อเนื่อง ข้อมูลเข้ารับประกันได้ว่าเป็นจำนวนพีชคณิตจริงซึ่งมีระดับไม่เกิน 2
การป้อนข้อมูล : x
เศษอย่างต่อเนื่องของ สิ่งนี้แบ่งออกเป็น 3 ส่วนคือส่วนจำนวนเต็มคำนำหน้าและส่วนที่ทำซ้ำ ส่วนจำนวนเต็มประกอบด้วยจำนวนเต็มเดียว ส่วนนำหน้าและส่วนทำซ้ำคืออาร์เรย์ (อาจว่าง) ของจำนวนเต็มบวกซึ่งอธิบายส่วนนำหน้าและทำซ้ำส่วนของเศษส่วนต่อเนื่อง ยกตัวอย่างเช่นการป้อนข้อมูลหมายถึงส่วนอย่างต่อเนื่อง(3, [1], [2, 4])
[3; 1, 2, 4, 2, 4, ...]
หากส่วนที่ทำซ้ำว่างเปล่าแสดงว่าเป็นจำนวนตรรกยะ ยกตัวอย่างเช่นการแสดงให้เห็นถึง(3, [1, 2], [])
[3; 1, 2] = 11/3
คุณต้องยอมรับทั้งสองรูปแบบของจำนวนตรรกยะ (เช่น(3, [1, 1, 1], [])
ซึ่ง[3; 1, 1, 1] = 11/3
ควรเป็นอินพุตที่ถูกต้อง)
เอาท์พุท : เอาท์พุทเศษส่วนต่อเนื่องของอินพุทเป็นสองเท่าในรูปแบบเดียวกับอินพุต หากผลลัพธ์เป็นจำนวนตรรกยะคุณอาจส่งออกรูปแบบของเศษส่วนต่อเนื่อง ตราบใดที่คำตอบนั้นเทียบเท่ากับคำตอบที่ถูกต้องมันก็ใช้ได้ ไม่จำเป็นต้องมี "การบีบอัด" ดังนั้นส่วนที่ไม่มีที่สิ้นสุดอาจเป็น "unrolled" เล็กน้อย (เช่น[1; 4, 2, 3, 2, 3...]
อาจถูกเขียน(1, [4], [2, 3])
หรือ(1, [4, 2, 3], [2, 3])
) คำตอบทั้งหมดจะต้องแน่นอน
กรณีทดสอบ : ได้รับคอลัมน์ฟอร์มที่แน่นอนเพื่อความสะดวก
Input Exact Form Output
(0, [] []) 0 (0, [] []) or (-1, [1], [])
(-5, [1, 1], []) -4.5 (-9, [], []) or (-10, [1], [])
(3, [1, 2], []) 11/3 (7, [3], []) or (7, [2, 1], [])
(1, [], [2]) sqrt(2) (2, [], [1, 4])
(-1, [2], [2, 1]) -1/sqrt(3) (-2, [1, 5], [2, 6])
(0, [1], [6, 1, 3, 1, 42, 1, 3, 1, 6, 2]) --> (1, [], [1, 2, 1, 8, 1, 20, 1, 8, 1, 2, 1, 2])
และในที่สุดกรณีทดสอบขนาดใหญ่กว่าเล็กน้อยเพื่อให้แน่ใจว่ามีความแม่นยำ:
รหัสที่สั้นที่สุดชนะ!
คำแนะนำ : คุณสามารถดำเนินการทางคณิตศาสตร์ในลักษณะที่ค่อนข้างตรงไปตรงมาใน fractions ต่อเนื่องตามที่อธิบายไว้ที่นี่ การเสแสร้งเศษส่วนต่อเนื่องเป็นเพียงกรณีพิเศษของอัลกอริธึมนี้ (แม้ว่าส่วนที่ยุ่งยากอาจจะพบเมื่อส่วนที่ต่อเนื่องซ้ำเกิดซ้ำ)
Sqrt[2]
แต่เพียงผู้เดียวบนพื้นฐานของจำนวนเต็มคำนำหน้าและการทำซ้ำชิ้นส่วนมากกว่าที่จะเป็น
[3; 1, 1, 1]
จะอยู่(3, [1, 1, 1], [])
ในรูปแบบอินพุตที่เราใช้ - ดังนั้นคำถามน่าจะพูดถึงมันในรูปแบบนั้น (ในย่อหน้าที่สาม) เพียงเพื่อความชัดเจน
(-2, [1, 5, 2], [6, 2])
เป็นเอาท์พุทที่ยอมรับได้สำหรับการป้อนข้อมูล(-1, [2], [2, 1])
? แล้วไง(-2, [1, 5, 2, 6, 2, 6], [2, 6])
ล่ะ