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