Top.Mail.Ru
Ответы

Помогите на C++

Номер числа Фибоначчи

Последовательность Фибоначчи определяется так:

φ0=0
, φ1=1, φn=φn−1+φn−2

Дано натуральное число A
. Определите, каким по счёту числом Фибоначчи оно является, то есть выведите такое число n, что φn=A. Если A не является числом Фибоначчи, выведите число −1

.

Входные данные

Вводится натуральное число A
(2⩽A⩽2⋅109

).

Выходные данные

Выведите ответ задачи.

По дате
По Рейтингу
Аватар пользователя
Мудрец
4мес

#include <stdio.h>
#include <iostream>
using namespace std;

int main()
{
int a = 0;
int b = 1;
int c;
int n, n1 = 2, n2 = 2 * 109;
int i = 2;
cout << "Vvedite chislo "<<n1<<" <"<<" n "<<"< "<<n2<<'\n';
cin >> n;
if (n<n1 || n>n2)
{
cout << "Nedopustimoe chislo";
exit(0);
}
while (true)
{
c = a + b;
i++;
if (c > n)
{
cout << "Result: -1";
break;
}
else if (c == n)
{
cout <<"Result: "<< i;
break;
}
a = b;
b = c;

}
return 0;
}