Leonardo da Pisano aka Fibonacci odegrał kluczową rolę w wprowadzeniu hindusko-arabskiego systemu liczbowego do Europy. Przedtem matematycy pracowali w bazie sześćdziesiątej z cyframi rzymskimi.
Na przykład pierwiastek kwadratowy z dwóch może być aproksymowany jako: jedna dwadzieścia cztery części sześćdziesięciu pięćdziesięciu jeden części trzech tysięcy sześćset sto , i zapisany jako: ixiv li , ze skalowaniem określonym przez kontekst. W tym czasie „nicość” była znana ( tj. Zero), ale nie miała standardowej reprezentacji w tym systemie liczbowym.
Gdyby Fibonacci zignorował te wypukłe cyfry dziesiętne, które napotkał podczas swoich podróży, z pewnością usunąłby braki w obecnym systemie. Ten ulepszony system nazywamy seksualnymi naśladowaniami Fibonacciego .
Twoim zadaniem jest napisanie programu, funkcji lub fragmentu kodu, który pobierze liczbę zmiennoprzecinkową w formacie ASCII lub binarnym i wyprowadzi bazowe sześćdziesiąt cyfr rzymskich. Dane wejściowe mogą być argumentami pliku, konsoli, wiersza polecenia lub funkcji, a dane wyjściowe mogą być plikiem lub konsolą, w zależności od tego, co jest najłatwiejsze.
Dane wyjściowe mogą być pisane wielkimi lub małymi literami i muszą zawierać następujące ulepszenia:
- użyj n lub N, aby wskazać null, co oznacza, że miejsce nie ma wartości, tj. „zero” (problem z systemem)
- użyj e lub E, aby wskazać et odpowiadający punktowi płciowemu (inny problem z systemem)
- użyj środkowej kropki · lub gwiazdki *, aby oddzielić grupy cyfr rzymskich (kolejny problem z systemem)
Załóżmy, że wejście będzie zmiennoprzecinkowe z mantysą nie większą niż lix · lix · lix · lix · lix . Ułamki mniejsze niż n · e · n · n · n · n · i można zignorować. Tak więc, pod warunkiem, że dane wejściowe mają te ograniczenia, można wyprowadzić maksymalnie dziesięć grup cyfr rzymskich z jednym e .
Liczby mniejsze niż ja muszą mieć wiodący numer, aby zapewnić wyraźny kontekst.
Kilka przykładów: input
→ wyjście
0
→ n1
→ i60
→ i · n0.1
→ n · e · vi3600
→ i · n · n10.5
→ x · e · xxx16777215
→ i · XVII · XX · XX · XV3.1415926536
→ iii · e · viii · xxix · xliv · n · xlvii
Wyjście musi unikać niepotrzebnego wiodącego n · w części mantysy, izolowanego e lub końcowego · n w części ułamkowej wyniku. Na przykład n · n · n · n · i , i · e oraz i · e · n · n · n · n · n są niepoprawnymi wyjściami dla wejścia 1
.
Różnice plus lub minus n · e · n · n · n · n · i na wyjściu mieszczą się w tolerancjach i są dopuszczalne.
Dane wejściowe to dowolne legalne zmiennoprzecinkowe w wybranym języku, więc mogą zawierać wykładniki dodatnie lub ujemne, o ile dane wejściowe nie mieszczą się w zakresie określonym powyżej.
I wreszcie, dozwolone są wbudowane cyfry rzymskie !