Napisz kod, który przyjmuje pojedynczą nieujemną liczbę całkowitą n i wysyła n-tą potęgę Phi (ϕ, Golden Ratio, około 1.61803398874989) z taką samą liczbą cyfr dziesiętnych jak n-ta liczba Fibonacciego.
Twój kod musi generować prawidłową sekwencję cyfr dla wszystkich danych wejściowych do co najmniej 10 (55 cyfr dziesiętnych). Dane wyjściowe muszą być dziesiętne czytelne dla człowieka. Możesz wybrać, czy zaokrąglić ostatnią cyfrę do najbliższej wartości, czy też ją przyciąć. Podaj, którego używa Twój kod.
ni wyjście, do 10, zaokrąglając w dół:
0 1
1 1.6
2 2.6
3 4.23
4 6.854
5 11.09016
6 17.94427190
7 29.0344418537486
8 46.978713763747791812296
9 76.0131556174964248389559523684316960
10 122.9918693812442166512522758901100964746170048893169574174
n i wyjście, do 10, zaokrąglając do najbliższej wartości:
0 1
1 1.6
2 2.6
3 4.24
4 6.854
5 11.09017
6 17.94427191
7 29.0344418537486
8 46.978713763747791812296
9 76.0131556174964248389559523684316960
10 122.9918693812442166512522758901100964746170048893169574174
Siódma liczba Fibonacciego wynosi 13, więc wynik dla n = 7, ϕ 7 , ma 13 miejsc po przecinku. Nie wolno obcinać końcowych zer, które wyświetlałyby zbyt mało cyfr; patrz wynik dla 6 w pierwszej tabeli, która kończy się pojedynczym zerem, aby zachować dokładność dziesiętną na 8 cyfrach.
Może jako bonus powiedz, jaka jest najwyższa liczba, którą Twój program może poprawnie wypisać.
Odpowiedzi:
dc, 26 bajtów
Ze względu na początkową precyzję 99 cyfr po przecinku zadziała to na wprowadzanie danych 11 . Możliwa jest dynamiczna (lub wyższa statyczna) precyzja, ale zwiększyłaby liczbę bajtów.
Przypadki testowe
Jak to działa
Ponieważ pożądana moc wyjściowa wynosi φ n , możemy obliczyć liczbę Fibonacciego F (n) jako ⌊φ n ÷ √5 + 0,5⌋ przy niewielkim dodatkowym wysiłku.
źródło
Mathematica, 50 bajtów
Podstawowe rozwiązanie. Zaokrągla do najbliższej wartości.
Wciąż weryfikuję najwyższą wartość, która nie spowoduje braku pamięci w moim komputerze.Wejście32
działa, ale zajmuje 45 minut i zużywa 16 GB pamięci RAM. Jednak biorąc pod uwagę nieskończony czas i pamięć, teoretycznie może to działać dla dowolnej wartości.źródło