재귀를 사용한 피보나치 수열

CBeginner
지금 연습하기

소개

이 랩에서는 재귀를 사용하여 피보나치 수열을 출력하는 C 프로그램을 만드는 방법을 배웁니다. 피보나치 수열은 각 숫자가 이전 두 숫자의 합으로 정의되며, 1, 1 이 수열의 처음 두 요소입니다.

새 C 파일 생성

~/project/ 디렉토리에 main.c라는 이름의 새로운 C 파일을 생성합니다.

필요한 라이브러리 포함

필요한 표준 입출력 라이브러리 stdio.h를 포함합니다.

#include<stdio.h>

printFibo 함수 정의

aj 매개변수를 갖는 printFibo라는 함수를 정의합니다. 이 함수는 피보나치 수열을 출력하는 데 사용됩니다.

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 함수 정의

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 프로그램을 만드는 방법을 배웠습니다. 이제 함수를 정의하고 재귀를 활용하여 필요한 수열을 반복하는 과정을 이해하게 되었습니다.