
На с++ пж Последовательность Фибоначчи определяется так: ϕ0=0,ϕ1=1,ϕn=ϕn−1+ϕn−2 Дано натуральное
число A. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число n, что ϕn=A. Если A не является числом Фибоначчи, выведите число −1. Входные данные Вводится натуральное число A (2≤A≤2∗109). Выходные данные Выведите ответ на задачу.

Ответы на вопрос

Ответ:
//g++ -Wall -o 1 1.cpp
//./1
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int n;
cin>>n;
if (n == 0){
cout<<0;
return 0;
}
else{
int a1 = 0 , a2 = 1;
int c = 1;
while(a2<=n){
if (a2==n){
cout<<c;
return 0;
}
a1 = a2;
a2 = a1+a2;
c++;
}
cout<<-1;
return 0;
}
}
Объяснение:



Для нахождения числа n, при котором ϕn = A, вы можете использовать следующий алгоритм на C++:
cpp#include <iostream>
int main() {
long long A;
std::cin >> A;
long long fib1 = 0, fib2 = 1, fib = 1, n = 1;
while (fib < A) {
fib = fib1 + fib2;
fib1 = fib2;
fib2 = fib;
n++;
}
if (fib == A) {
std::cout << n << std::endl;
} else {
std::cout << "-1" << std::endl;
}
return 0;
}
Этот код сначала считывает натуральное число A. Затем он начинает вычислять числа Фибоначчи до тех пор, пока текущее число Фибоначчи (fib) меньше заданного числа A. Каждый раз обновляются значения fib1 и fib2, и увеличивается счетчик n. Когда fib становится равным A, программа выводит значение n. Если не удается найти число Фибоначчи, равное A, программа выводит -1.


Похожие вопросы







Топ вопросов за вчера в категории Информатика









Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili