Wyzwanie polega na przekształceniu ułamka w ciągłą formę ułamkową.
Dane wejściowe : ułamek może być wprowadzany w dowolnym formacie, w tym (ale nie tylko)
- ciąg: „7/16”
- lista: {7, 16}, (7, 16), [7, 16]
- prosta uporządkowana para: 7 16
- funkcja: f [7,16]
Dane wyjściowe : ułamek ciągły, w 2D, z poziomymi słupkami ułamkowymi oddzielającymi licznik od mianownika. Poprawne są tylko ciągłe ułamki z licznikami równymi 1. Nie trzeba zmieniać wielkości czcionki w zależności od głębokości. Zero wiodące (dla właściwych ułamków) jest opcjonalne.
Głębia : Twój kod musi być w stanie wyświetlać co najmniej 8 poziomów głębi.
Kryterium wygranej : Wygrywa najkrótszy kod. Musisz dołączyć kilka przypadków testowych pokazujących dane wejściowe i wyjściowe.
Przykłady testowe (dane wejściowe i dane wyjściowe)
5/4
5/3
5/7
9/16
89/150
code-golf
rational-numbers
DavidC
źródło
źródło
0 + 89 / 250
tego ostatniego?0 + 1 / (1 + 1 / (1 + 1 / (2 + 1 / (3 + 1 / (1 + 1 / (1 + 1 / (2)))))))
? A co bez nawiasów? A jeśli po prostu wyświetlamy niebieskie liczby, na przykład0 1 1 2 5 1 1 2
?Odpowiedzi:
Mathematica,
4036 znakówPrzykład:
Wynik:
źródło
Python 2,
158155147142Test:
Python 2, alt. wersja, 95
Zasadniczo port odpowiedzi breadboksa. Bezpieczniejsze wyjście.
Test:
źródło
40,3
Jako dane wejściowe.XSLT 1.0
Pomyślałem, że fajnie byłoby wyświetlić ułamki za pomocą HTML, więc oto rozwiązanie XSLT.
Aby to przetestować, zapisz xslt jako fraction.xslt i otwórz następujący plik w IE:
źródło
Ruby, 175 (ze sztuką ASCII) lub 47 (bez)
Bez sztuki ASCII, 47
Ponieważ Ruby nie potrafi tak zrobić grafiki, po prostu wypisuję niebieskie liczby w twoich przykładach.
Z art. ASCII,
181178175Wow, ta sztuka ASCII zajęła dużo kodu, a nawet byłem zły i używałem
rescue 0
: P Próbka:źródło
Sage Notebook, 80
Tutaj
n
może być wszystko, co Sage może aproksymować liczbą wymierną / zmiennoprzecinkową. Domyślna precyzja wynosi 53 bity, chyba żen
jest toRational
. Uwielbiam MathJax.źródło
C, 119 znaków
Oto kilka przykładów wyników:
Chociaż obcięta linia ułamkowa nie jest tak ładna, jak niektóre przykłady tutaj, chciałbym zauważyć, że była to powszechna technika formatowania ciągłych ułamków jeszcze w czasach, gdy komputery stacjonarne były wszechobecne.
Dobra, oto o wiele dłuższa wersja (247 znaków), która w pełni formatuje dane wyjściowe:
Niektóre przykłady jego wyników:
źródło
APL (78)
Przykład:
źródło
Mathematica, 77
Właśnie nauczyłem się Mathematica. Zajmuje to zaskakująco długi program.
źródło
Perl
128114 znakówPonieważ jednak korzysta się z umieszczenia konsoli, przed uruchomieniem należy wyczyścić konsolę:
wynik:
Pierwszy post: 128 znaków
Podzielony na cut'n paste :
Wyrenderuje:
To samo w przypadku LaTeX:
źródło
Perl:
140,133121 znakówprzykład:
#perl fraction.pl
5
7
źródło
Razor Leaf w przeglądarce Firefox, 108
127Podpowiedź naprawdę boli tam…Masz na myśli, że mogę wybrać? Okej, to lista. W każdym razie, powodzenia w uruchomieniu tego.źródło
Game Maker Language (Script),
6171Skompiluj ze wszystkimi niezainicjowanymi zmiennymi jak
0
.źródło
c
.Zakładając, że liczby wejściowe są pierwszymi, wywołaj tę funkcję procesu za pomocą licznika i mianownika. Może przejść na dowolną głębokość, dopóki nie znajdzie ciągłej formy, bez ograniczeń
Napisane w JAVA (238 znaków)
proces (89 150);
proces (973,13421);
źródło
K 136
.
źródło