Определите, каким по счету числом Фибоначчи является заданное число - C (СИ)

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Определите, каким по счету числом Фибоначчи является заданное число»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
int main()
{
      int f1,f2,t,fib,nom,flag;
     
      f1=0; 
      f2=1;
      nom=1;
      flag=0;
      scanf("\n%d", &fib);
      while (flag!=1)
      {
            t=f1+f2;
            f1=f2;
            f2=t;
            nom+=1;
            if (f2==fib) 
            {
                         printf("\n%d", nom);
                         flag=1;
                         }
                         else if (f2>fib)
                         {
                              printf("-1\n");
                              flag=1;
                              }
                       
      };
     
     
           }

Объяснение кода листинга программы

В этом коде задача сводится к определению, является ли заданное число (fib) числом Фибоначчи. Числа Фибоначчи определяются следующим образом:

  1. Первые два числа равны 0 и 1.
  2. Каждое последующее число равно сумме двух предыдущих. Вот список элементов кода с соответствующими номерами:
  3. Объявление переменных:
    • f1, f2, t, fib, nom, flag (строки 6-7)
  4. Инициализация переменных:
    • f1 = 0, f2 = 1, nom = 1, flag = 0 (строки 8-11)
  5. Ввод заданного числа (fib) с помощью функции scanf (строка 14)
  6. Начало цикла while, который продолжается до тех пор, пока не будет найдено число Фибоначчи, равное заданному числу (fib)
    • Внутри цикла находятся счетные переменные t, f1 и f2, которые используются для вычисления следующего числа Фибоначчи (строки 16-18)
    • Переменная nom увеличивается на 1 на каждой итерации цикла, чтобы отслеживать номер числа Фибоначчи (строка 17)
    • Если f2 равно заданному числу (fib), то число Фибоначчи и его порядковый номер выводятся на экран (строки 20-22)
    • Если f2 больше заданного числа (fib), то выводится сообщение -1 и флаг устанавливается в 1, чтобы прервать цикл (строки 23-25)
  7. Конец цикла while (строка 15) Следует отметить, что этот код предполагает, что пользователь вводит действительное целое число. Если пользователь вводит некорректные данные, код может не работать должным образом.

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы