Ułamki pośrednie
Wyzwanie:
Konieczne będzie utworzenie kodu, który przyjmuje co najmniej 3 dane wejściowe; 2 liczby całkowite i „reprezentacja ułamkowa” - którykolwiek typ odpowiada Twojemu językowi do reprezentowania przyrostów ułamkowych), tj. Jeśli wybierzesz ciąg, wejście będzie miało wartość „1/4” lub możesz wybrać 2 dodatkowe liczby całkowite lub krotkę lub w / e.
Dane wejściowe mogą być w dowolnym miejscu uzasadnione (STDIN, argumenty funkcji, z pliku itp.), A więc mogą generować (STDOUT, wartość zwracana funkcji, do pliku itp.)
Zasady:
- Wejściowy „ułamek” zawsze będzie prawidłowym ułamkiem, mniejszym niż 1; przykład „1/4”
- Druga liczba całkowita wejściowa zawsze będzie miała wyższą wartość niż pierwsza liczba całkowita. IE pierwsza liczba całkowita wejściowa zawsze będzie miała niższą wartość niż druga.
- Wejściowe liczby całkowite mogą być ujemne.
- Frakcje wyjściowe powinny być maksymalnie zmniejszone (uproszczone)
Kod będzie musiał wyprowadzać każdy „krok ułamkowy” między 2 liczbami w przyrostach ułamka wejściowego.
Kod powinien być programem lub funkcją, jak podano tutaj
Przykład 1:
Wejście: -2,3,"1/2"
Wynik:
-2
-3/2
-1
-1/2
0
1/2
1
3/2
2
5/2
3
Przykład 2:
Wejście: 1,2,"2/3"
Wynik:
1
5/3
2
lub
1
4/3
2
Uwaga: liczenie można rozpocząć w dowolnym kierunku (dziękuję @Mego)
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.