Иван обожает числа и последовательности чисел. Недавно он узнал, что существует последовательность чисел, называемая числами Фибоначчи. Определяется она следующими правилами:
F_0 = 0F
0
=0
F_1 = 1F
1
=1
F_n = F_{n-1} + F_{n-2}F
n
=F
n−1
+F
n−2
.
Теперь Иван хочет узнать, сколько чисел из его коллекции содержатся в этой последовательности.
Формат входных данных
Входной файл содержит единственное целое число N\space (0\leq N\leq 10^{17})N (0≤N≤10
17
) — число, которое Ваня хочет проверить на принадлежность к последовательности Фибоначчи.
Формат выходных данных
Если данное число не принадлежит последовательности Фибоначчи, то выведите -1−1, иначе выведите его номер в последовательности. Если число встречается в последовательности несколько раз, выведите номер его первого вхождения.
Sample Input 1:
0
Sample Output 1:
0
Sample Input 2:
1
Sample Output 2:
1
Sample Input 3:
9
Sample Output 3:
-1
Sample Input 4:
55
Sample Output 4:
10
Напишите программу. Тестируется через stdin → stdout
Time Limit: 6 секунд
Memory Limit: 64 MB
писать на любом языке,главное не на паскале,и показать на каком
в простейшем случае, трассировка - вывод значений переменных на экран (например, в окно консоли) , либо расчёт их на бумажке для каждого шага.
в более продвинутом варианте используются точки останова, окно наблюдения, выполнение по шагам и, если есть, контекстный интерпретатор выражений.
есть также специальная "трассирующая консоль" - интерфейс вывода информации из программы в отладчик, если таковой присутствует.
почти любой современный отладчик показывает состояние програмm при её останове, что делает трассировку процессом легко доступным
1) a x a = a² ⇒ b; b x a = a³ ⇒ результат
2) a x a = a² ⇒ b; b x b = a⁴ ⇒ c; c x c = a⁸ ⇒ c; c x b = a¹⁰ ⇒ результат
Программа на языке PascalABC.Net
var
a,b,c,y:real;
begin
Write('Введите число: '); Read(a);
b:=a*a; y:=b*a; Writeln('Третья степень числа равна ',y);
c:=b*b; c:=c*c; y:=b*c;
Writeln('Десятая степень числа равна ',y)
end.
Тестовые решения:
Введите число: 2
Третья степень числа равна 8
Десятая степень числа равна 1024
Введите число: -13.594
Третья степень числа равна -2512.128188584
Десятая степень числа равна 215512594781.574