Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 프로그래밍으로 피보나치 수열 구하기: 알고리즘부터 코드 예제까지

피보나치 수열(Fibonacci Series)은 이전 두 수를 더하는 방식으로 만들어지는 숫자의 나열입니다. 수열은 두 개의 수 f0과 f1에서 시작하며, 초기값은 0, 1 또는 1, 1로 설정할 수 있습니다.

피보나치 수열은 다음과 같은 점화식 조건을 만족합니다.

fn = fn-1 + fn-2

알고리즘

피보나치 수열을 구하기 위한 알고리즘은 다음과 같습니다.

시작
1단계: 실행 시점에 정수 변수 a, b, c를 입력받는다
2단계: a=0, b=1로 초기화한다
3단계: c = a + b 를 계산한다
4단계: c를 출력한다
5단계: a=b, b=c 로 값을 갱신한다
6단계: 3~5단계를 n번 반복한다
종료

C 프로그램 예제

다음은 while 루프를 사용하여 피보나치 수열을 출력하는 C 프로그램입니다.

#include <stdio.h>
int main(){
    int number, i = 0, Next, first = 0, second = 1;
    printf("\n Please Enter the Range Number: ");
    scanf("%d",&number);
    while(i < number){
        if(i <= 1){
            Next = i;
        }
        else{
            Next = first + second;
            first = second;
            second = Next;
        }
        printf("%d \t", Next);
        i++;
    }
    return 0;
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Please Enter the Range Number: 6
0 1 1 2 3 5

코드 설명

프로그램이 동작하는 원리를 단계별로 살펴보면 다음과 같습니다.

먼저 사용자로부터 출력할 항의 개수(number)를 입력받습니다. 변수 first와 second는 각각 0과 1로 초기화되어 수열의 첫 두 항 역할을 합니다.

while 루프 안에서 인덱스 i가 0 또는 1일 때는 그대로 0, 1을 출력하고, 그 이후에는 앞의 두 값(first, second)을 더해 다음 항(Next)을 계산합니다. 그런 다음 first에 second 값을, second에 Next 값을 대입해 두 변수를 한 칸씩 앞으로 이동시키며 수열을 생성합니다.

입력값이 6인 경우 0, 1, 1, 2, 3, 5 여섯 개의 항이 순서대로 출력되는 것을 확인할 수 있습니다. 이처럼 피보나치 수열은 반복문만으로도 간단하게 구현할 수 있어, C 언어 초보자에게 좋은 연습 예제가 됩니다.