Ułamki ciągłe są wyrażeniami, które iteracyjnie opisują ułamki. Mogą być reprezentowane graficznie:
Lub mogą być reprezentowane jako lista wartości: [a0; a1, a2, a3, ... an]
Wyzwanie:
weź liczbę podstawową: i listę wartości mianownika: i uprość dalszy ciąg ułamkowy do uproszczonego ułamka wymiernego: osobno powróć lub wydrukuj licznik i mianownik.a0[a1, a2, a3, ... an]
Przykłady:
√19 : [4;2,1,3,1,2]: 170/39ℯ: [1;0,1,1,2,1,1]: 19/7π: [3;7,15,1,292,1]: 104348/33215ϕ: [1;1,1,1,1,1]: 13/8
Przykładowa implementacja: (python)
def foo(base, sequence):
numerator = 1
denominator = sequence[-1]
for d in sequence[-2::-1]:
temp = denominator
denominator = d * denominator + numerator
numerator = temp
return numerator + base * denominator, denominator


2.002można wyrazić jako2002/1000. Z technicznego punktu widzenia jest to „pojedyncza frakcja”, zapewne chcesz powiedzieć, „pojedyncza frakcja w najprostszej formie”.