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

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

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

Доброго времени суток всем! Необходима помощь в решении задачи: Последовательность ряда Фибоначчи определяется следующим образом: F0=0, F1 = 1, Fn=Fn-2+Fn-1. N=2,3,4… Ввести число и определить, является ли оно числом Фибоначчи. Решение оформить с помощью рекурсивной функции.

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

textual
Листинг программы
#include <stdio.h>
 
char IsFibon_recursive(unsigned prev, unsigned cur, unsigned x) {
    if (x > prev)
        return IsFibon_recursive(cur, prev + cur, x);
    return x == prev;
}
 
char IsFibon(unsigned x) { return IsFibon_recursive(0, 1, x); }
 
int main() {
    unsigned n;
    scanf("%u", &n);
    printf("%d", IsFibon(n));
}

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

  • Включаем заголовочный файл stdio.h для использования функций ввода-вывода
  • Создаём две функции: IsFibon_recursive и IsFibon
  • Функция IsFibon_recursive принимает три параметра: предыдущее число, текущее число и проверяемое число
  • Если проверяемое число больше предыдущего, то функция вызывает саму себя, передавая текущее число как предыдущее, а предыдущее как сумму текущего и предыдущего чисел
  • Если проверяемое число равно предыдущему, то функция возвращает 1
  • Если проверяемое число меньше предыдущего, то функция вызывает функцию рекурсивно, передавая текущее число как предыдущее, а предыдущее как сумму текущего и предыдущего чисел
  • Функция IsFibon является оберткой для функции IsFibon_recursive и принимает одно число
  • В функции main считываем число с помощью функции scanf и выводим результат проверки числа с помощью функции IsFibon на экран

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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