Вопрос задан 25.06.2023 в 01:43. Предмет Информатика. Спрашивает Смирнов Евгений.

НУЖНО СРОЧНО НА С++, ТАКИЕ ЗАДАЧИ ЕСТЬ НА ПИТОНЕ, НО НУЖЕН С++ С ПОМОЩЬЮ ЦИКЛА 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
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Пятак Алёна.

Ответ:

Код на 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;

}

Объяснение:


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи на C++ с использованием цикла while и конструкции if/else, вы можете следовать следующему алгоритму:

  1. Инициализируйте две переменные: prev и current для предыдущего и текущего чисел Фибоначчи. Начните с prev = 0 и current = 1.

  2. Инициализируйте переменную n равной 1, чтобы отслеживать номер текущего числа Фибоначчи.

  3. Считайте входное число A.

  4. Начните цикл while, который будет выполняться, пока current меньше или равно A. Внутри цикла:

    a. Если current равно A, то выводите значение n и завершите программу.

    b. В противном случае, обновите значения prev и current для следующего числа Фибоначчи и увеличьте n на 1.

  5. Если цикл 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, если такого числа нет.

0 0

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

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

Последние заданные вопросы в категории Информатика

Задать вопрос