Напишите некоторый код, который принимает одно неотрицательное целое число n и выводит n-ю степень Phi (ϕ, Золотое сечение, приблизительно 1,61803398874989) с тем же количеством десятичных цифр, что и n-е число Фибоначчи.
Ваш код должен выдавать правильную последовательность цифр для всех входных данных не менее 10 (55 десятичных цифр). Выходные данные должны быть читаемыми человеком. Вы можете выбрать, округлять ли последнюю цифру до ближайшего значения или урезать ее. Пожалуйста, укажите, какой из них использует ваш код.
n и выводим до 10, округляя вниз:
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 и выводим до 10, округляя до ближайшего значения:
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
Седьмое число Фибоначчи равно 13, поэтому выходные данные для n = 7, ϕ 7 , имеют 13 десятичных знаков. Вы не должны усекать конечные нули, которые бы отображали слишком мало цифр; смотрите вывод для 6 в первой таблице, которая заканчивается одним нулем, чтобы сохранить десятичную точность в 8 цифр.
Возможно, в качестве бонуса, скажите, какое наибольшее число может правильно вывести ваша программа.
Ответы:
постоянный ток, 26 байтов
Из-за начальной точности 99 цифр после запятой это сработает до ввода 11 . Динамическая (или более высокая статическая) точность возможна, но это повысит количество байтов.
Контрольные примеры
Как это работает
Поскольку желаемый результат равен φ n , мы можем вычислить число Фибоначчи F (n) как ⌊φ n ÷ √5 + 0,5⌋ без особых дополнительных усилий.
источник
Mathematica, 50 байтов
Основное решение. Округляет до ближайшего значения.
Все еще проверяю самое высокое значение, которое не заставит мой компьютер исчерпать память.Ввод32
работает, но занимает 45 минут и использует 16 ГБ ОЗУ. Однако, учитывая бесконечное время и память, теоретически это может работать для любого значения.источник