Номер числа Фибоначчи
Последовательность Фибоначчи определяется так:
ϕ0=0,ϕ1=1,ϕn=ϕn−1+ϕn−2
Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число n, что ϕn=A. Если A не является числом Фибоначчи, выведите число −1.
Входные данные
Вводится натуральное число A (2≤A≤2∗109).
Выходные данные
Выведите ответ на задачу.
Примеры
Ввод
8
10
Вывод
6
-1
C/C++
Напишете на c++
Код на C++:
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int f1 = 0;
int f2 = 1;
int f3 = 1;
int A, count = 0;
do
{
cin >> A;
} while (A < 2 || A > 2 * pow(10, 9));
while (true)
{
count++;
if (f3 == A)
{
cout << count << endl;
break;
}
else if (f3 != A && f3 > A)
{
cout << -1 << endl;
break;
}
f3 = f1 + f2;
f1 = f2;
f2 = f3;
};
return 0;
}
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int f1 = 0;
int f2 = 1;
int f3 = 1;
int A, count = 0;
do
{
cin >> A;
} while (A < 2 || A > 2 * pow(10, 9));
while (true)
{
count++;
if (f3 == A)
{
cout << count << endl;
break;
}
else if (f3 != A && f3 > A)
{
cout << -1 << endl;
break;
}
f3 = f1 + f2;
f1 = f2;
f2 = f3;
};
return 0;
}
Константин Ерощенков
неправильно ( код блок говорит есть ошибки
Тут лучше сразу сделать массив из чисел Фибоначчи, а потом можно проверять сколько надо раз число А при разных его значениях (0≤А≤2⁶⁴-1=18446744073709551615). Число 1 в массив будет входить два раза.
#include <iostream>
using namespace std;
int main() { int m, n;
unsigned long long A, f[97];
f[0] = 0; f[1] = 1; for (n = 2; n < 97; n++)
f[n] = f[n - 1] + f[n - 2]; while (true)
{ m = 1; cin >> A; if (A == 0) cout << 0;
else if (A == 1) cout << "1 2"; else
{ for (n = 3; n < 97; n++) { if (A == f[n])
{ m = 0; cout << n; break; } }
if (m) cout << "-1"; } cout << endl << endl; } }

#include <iostream>
using namespace std;
int main() { int m, n;
unsigned long long A, f[97];
f[0] = 0; f[1] = 1; for (n = 2; n < 97; n++)
f[n] = f[n - 1] + f[n - 2]; while (true)
{ m = 1; cin >> A; if (A == 0) cout << 0;
else if (A == 1) cout << "1 2"; else
{ for (n = 3; n < 97; n++) { if (A == f[n])
{ m = 0; cout << n; break; } }
if (m) cout << "-1"; } cout << endl << endl; } }

#include < iostream >
using namespace std;
int fib(int x)
{
if (!x) return 0;
if (x == 1) return 1;
return fib(x - 1) + fib(x - 2);
}
int main()
{
int a;
cin >> a;
if (a < 2 || a > 218) { cout << "Out of range"; return 0; }
for (int i = 0; i < 13; i++)
if (a == fib(i)) {
cout << i; return 0;
}
cout << "Non fibonacha";
}
using namespace std;
int fib(int x)
{
if (!x) return 0;
if (x == 1) return 1;
return fib(x - 1) + fib(x - 2);
}
int main()
{
int a;
cin >> a;
if (a < 2 || a > 218) { cout << "Out of range"; return 0; }
for (int i = 0; i < 13; i++)
if (a == fib(i)) {
cout << i; return 0;
}
cout << "Non fibonacha";
}
Я питонист
Юрий Бердников
Отлично чувак, а может скажешь теперь откуда у тебя в очке боинг?
Иван Синибабнов
Очнись ты же мазелов
Похожие вопросы
- Помогите пожалуйста написать код.(C++)
- Написать код C++
- Как защитить программу написанную на C++ ?
- Написать программу. C++
- ПРОШУ, ПОМОГИТЕ НАПИСАТЬ КОД C++
- Помогите написать код c++
- Помогите написать код C++
- Помогите написать код C++ со строками
- Помогите написать программу C++
- Помогите написать код c++ со строками