ท้าทาย
รับจำนวนเต็มบวกN
เอาท์พุทผลรวมของส่วนN
กลับแรกเป็นเศษส่วนที่แน่นอนซึ่งจะแสดงเป็นคู่ของจำนวนเต็มในลำดับที่สอดคล้องกันเป็นตัวแทนของเศษและส่วน
กฎระเบียบ
ผลลัพธ์จะต้องถูกต้อง
เอาต์พุตควรเป็นจำนวนเต็มคู่ในลำดับที่สอดคล้องกันซึ่งแสดงถึงตัวเศษและส่วน
ห้ามใช้ประเภทตัวเลขที่ไม่ใช่จำนวนเต็ม (มีอยู่แล้วภายในหรือไลบรารี)
- การชี้แจง / ข้อยกเว้น: ประเภทที่ไม่ใช่ตัวเลขจะไม่เป็นไรหากค่าทั้งหมดที่ใช้คำนวณและส่งคืนเป็นจำนวนเต็ม (เช่นภาษาของคุณใช้ตัวเลขที่มีเหตุผลตามค่าเริ่มต้น แต่คุณใช้เลขคณิตเลขจำนวนเต็มในคำตอบของคุณเท่านั้น)
ผลผลิตควรลดลงมากที่สุด (
3/2
ไม่เป็นไร6/4
ไม่ใช่)ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
การส่งควรทำงานสำหรับอินพุตอย่างน้อยถึง 20 หรือเมตานี้แล้วแต่จำนวนใดจะสูงกว่า
กรณีทดสอบ
1: 1/1
2: 3/2 (1/1 + 1/2)
3: 11/6 (1/1 + 1/2 + 1/3)
4: 25/12 etc.
5: 137/60
6: 49/20
20: 55835135/15519504
56: 252476961434436524654789/54749786241679275146400
226: 31741146384418617995319820836410246588253008380307063166243468230254437801429301078323028997161/5290225078451893176693594241665890914638817631063334447389979640757204083936351078274058192000
การสร้างกรณีทดสอบ (Python 3)
import fractions
def f(x):
return sum(fractions.Fraction(1,i) for i in range(1,x+1))
คล้ายกับความท้าทายนี้และความท้าทายนี้
numerators มีOEIS A001008และตัวหารเป็นOEIS A002805
gcd
เป็น "ฟังก์ชั่น" ถ้าภาษาของคุณให้มันได้หรือไม่
gcd
และฟังก์ชั่นอื่น ๆ ในตัวใช้งานได้ดี ไม่อนุญาตประเภท Rational / Fractional