
НУЖНО СРОЧНО НА С++, ТАКИЕ ЗАДАЧИ ЕСТЬ НА ПИТОНЕ, НО НУЖЕН С++ С ПОМОЩЬЮ ЦИКЛА WHILE И IF/ELSE,
НИКАКИХ МАССИВОВ И ЦИКЛОВ FOR Номер числа Фибоначчи Последовательность Фибоначчи определяется так: ϕ0=0,ϕ1=1,ϕn=ϕn−1+ϕn−2 Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число n, что ϕn=A. Если A не является числом Фибоначчи, выведите число −1. Входные данные Вводится натуральное число A (2≤A≤2∗109). Выходные данные Выведите ответ на задачу. Ввод 8 Вывод 6 Ввод 10 Вывод -1

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

Ответ:
Код на C++:
#include <iostream>
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;
}
Объяснение:




Для решения этой задачи на C++ с использованием цикла while и конструкции if/else, вы можете следовать следующему алгоритму:
Инициализируйте две переменные:
prev
иcurrent
для предыдущего и текущего чисел Фибоначчи. Начните сprev = 0
иcurrent = 1
.Инициализируйте переменную
n
равной 1, чтобы отслеживать номер текущего числа Фибоначчи.Считайте входное число
A
.Начните цикл while, который будет выполняться, пока
current
меньше или равноA
. Внутри цикла:a. Если
current
равноA
, то выводите значениеn
и завершите программу.b. В противном случае, обновите значения
prev
иcurrent
для следующего числа Фибоначчи и увеличьтеn
на 1.Если цикл while завершается, и вы не нашли число Фибоначчи, равное
A
, то выведите -1.
Вот C++ код, который реализует описанный алгоритм:
cpp#include <iostream>
int main() {
int A;
std::cin >> A;
int prev = 0;
int current = 1;
int n = 1;
while (current <= A) {
if (current == A) {
std::cout << n << std::endl;
return 0;
}
int next = prev + current;
prev = current;
current = next;
n++;
}
std::cout << -1 << std::endl;
return 0;
}
Этот код сначала считывает входное число A
, а затем использует цикл while для определения номера числа Фибоначчи, равного A
, или выводит -1, если такого числа нет.


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







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