Последовательность Фибоначчи с использованием рекурсии

CCBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии вы научитесь создавать C-программу для вывода последовательности Фибоначчи с использованием рекурсии. Последовательность Фибоначчи определяется как последовательность, в которой каждое число равно сумме двух предыдущих чисел, начиная с 1, 1, которые являются первыми двумя элементами последовательности.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FunctionsGroup -.-> c/recursion("Recursion") c/FileHandlingGroup -.-> c/create_files("Create Files") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/function_declaration -.-> lab-123248{{"Последовательность Фибоначчи с использованием рекурсии"}} c/recursion -.-> lab-123248{{"Последовательность Фибоначчи с использованием рекурсии"}} c/create_files -.-> lab-123248{{"Последовательность Фибоначчи с использованием рекурсии"}} c/user_input -.-> lab-123248{{"Последовательность Фибоначчи с использованием рекурсии"}} c/output -.-> lab-123248{{"Последовательность Фибоначчи с использованием рекурсии"}} end

Создайте новый C-файл

Создайте новый C-файл с именем main.c в каталоге ~/project/.

Подключите необходимые библиотеки

Подключите необходимую стандартную библиотеку ввода/вывода stdio.h.

#include<stdio.h>

Определите функцию printFibo

Определите функцию с именем printFibo с параметром aj. Она используется для вывода последовательности Фибоначчи.

void printFibo(int aj)
{
    static long int first = 0, second = 1, sum;
    if(aj > 1)
    {
        sum = first + second;
        first = second;
        second = sum;
        printf("%ld ", sum);
        printFibo(aj-1);    // recursive call
    }
    else
    {
        // after the elements, for line break
        printf("\n\n\n");
    }
}

Определите функцию main

Определите главную функцию. Получите ввод от пользователя для общего количества элементов в последовательности Фибоначчи и передайте его в функцию printFibo.

int main()
{
    printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
    int k, n;
    long int i = 0, j = 1;
    printf("Enter the length of the Fibonacci series: ");
    scanf("%d", &n);
    printf("\n\nFirst %d terms of the Fibonacci series are:\n\n\n",n);
    printf("%d ", 1);
    printFibo(n);
    printf("\n\n\t\t\tCoding is Fun!\n\n\n");
    return 0;
}

Завершите код

Теперь полная программа для вывода последовательности Фибоначчи с использованием рекурсии приведена ниже:

#include<stdio.h>

// declaring the function
void printFibo(int);

int main()
{
    printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
    int k, n;
    long int i = 0, j = 1;
    printf("Enter the length of the Fibonacci series: ");
    scanf("%d", &n);
    printf("\n\nFirst %d terms of the Fibonacci series are:\n\n\n",n);
    printf("%d ", 1);
    printFibo(n);
    printf("\n\n\t\t\tCoding is Fun!\n\n\n");
    return 0;
}

void printFibo(int aj)
{
    static long int first = 0, second = 1, sum;
    if(aj > 1)
    {
        sum = first + second;
        first = second;
        second = sum;
        printf("%ld ", sum);
        printFibo(aj-1);    // recursive call
    }
    else
    {
        // after the elements, for line break
        printf("\n\n\n");
    }
}

Резюме

В этом практическом занятии вы узнали, как создать программу на C для вывода последовательности Фибоначчи с использованием рекурсии. Теперь вы понимаете процесс определения функций и использования рекурсии для перебора необходимой последовательности.