Wyzwanie
Biorąc pod uwagę dodatnią liczbę całkowitą N
, wypisuje sumę pierwszych N
odwrotności jako dokładną część, która jest reprezentowana jako para liczb całkowitych w spójnej kolejności reprezentującej licznik i mianownik.
Zasady
Dane wyjściowe muszą być dokładne.
Dane wyjściowe powinny być jako para liczb całkowitych w spójnej kolejności reprezentującej licznik i mianownik.
Używanie typów liczbowych niecałkowitych (wbudowanych lub biblioteki) jest zabronione.
- Wyjaśnienie / wyjątek: typy liczbowe niecałkowite są w porządku, jeśli i tylko wtedy, gdy wszystkie użyte, obliczone i zwrócone wartości są liczbami całkowitymi (tzn. Twój język domyślnie używa liczb wymiernych, ale w odpowiedzi używasz tylko arytmetyki liczb całkowitych)
Wydajność powinna być jak najmniejsza. (
3/2
jest w porządku,6/4
nie jest)Standardowe luki są zabronione.
Zgłoszenia powinny działać dla danych wejściowych co najmniej do 20 lub tej meta , w zależności od tego, która wartość jest wyższa.
Przypadki testowe
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
Generowanie przypadków testowych (Python 3)
import fractions
def f(x):
return sum(fractions.Fraction(1,i) for i in range(1,x+1))
Podobne do tego wyzwania i tego wyzwania .
Liczniki to OEIS A001008 , a mianownikami są OEIS A002805 .
gcd
„funkcja wbudowana” jest dostępna w Twoim języku?
gcd
i inne wbudowane funkcje są w porządku. Typy wymierne / ułamkowe są niedozwolone.