소개
이 실습에서는 C 언어로 피보나치 수열을 생성하는 방법을 배웁니다. 피보나치 수열은 각 숫자가 바로 앞의 두 숫자의 합인 잘 알려진 수학적 수열입니다. 사용자로부터 항의 개수를 입력받은 후 루프를 사용하여 수열을 생성하고, 마지막으로 생성된 피보나치 수열을 출력합니다. 이 실습은 C 프로그래밍 언어를 사용하여 수론 및 이산수학의 기본 개념을 다룹니다.
항의 개수 읽기
이 단계에서는 C 언어로 피보나치 수열을 생성하기 위한 항의 개수를 읽는 방법을 배웁니다. 이는 피보나치 수열 프로그램을 만드는 첫 번째 중요한 단계입니다.
먼저 ~/project 디렉토리에 새로운 C 파일을 생성합니다.
cd ~/project
nano fibonacci.c
이제 사용자로부터 항의 개수를 읽는 초기 코드를 작성합니다.
#include <stdio.h>
int main() {
int n;
printf("피보나치 수열의 항의 개수를 입력하세요: ");
scanf("%d", &n);
printf("%d개의 항을 입력했습니다.\n", n);
return 0;
}
컴파일 및 실행하여 입력을 테스트해 봅시다.
gcc fibonacci.c -o fibonacci
./fibonacci
예시 출력:
피보나치 수열의 항의 개수를 입력하세요: 10
10개의 항을 입력했습니다.
설명
scanf("%d", &n)은 사용자로부터 정수 입력을 읽어 변수n에 저장합니다.printf()를 사용하여 사용자에게 메시지를 표시하고 입력된 항의 개수를 출력합니다.- 프로그램은 수열의 길이에 대한 사용자 입력을 성공적으로 받을 수 있는지 확인합니다.
루프를 사용하여 항 생성
이 단계에서는 루프를 사용하여 피보나치 수열을 생성하도록 이전 피보나치 수열 프로그램을 수정합니다. 이전 단계의 코드를 기반으로 실제 피보나치 수열을 생성합니다.
fibonacci.c 파일을 업데이트합니다.
cd ~/project
nano fibonacci.c
이제 for 루프를 사용하여 피보나치 항을 생성하도록 코드를 수정합니다.
#include <stdio.h>
int main() {
int n, first = 0, second = 1, next;
printf("피보나치 수열의 항의 개수를 입력하세요: ");
scanf("%d", &n);
printf("%d개 항의 피보나치 수열: \n", n);
for (int i = 0; i < n; i++) {
if (i <= 1)
next = i;
else {
next = first + second;
first = second;
second = next;
}
printf("%d ", next);
}
printf("\n");
return 0;
}
프로그램을 컴파일하고 실행합니다.
gcc fibonacci.c -o fibonacci
./fibonacci
예시 출력:
피보나치 수열의 항의 개수를 입력하세요: 10
10개 항의 피보나치 수열:
0 1 1 2 3 5 8 13 21 34
설명
first와second를 피보나치 수열의 첫 두 항으로 초기화합니다.for루프는 이전 두 항을 더하여 다음 항을 생성합니다.next = first + second는 다음 항을 계산합니다.- 각 반복에서
first와second를 업데이트하여 수열의 진행을 유지합니다. - 루프는 지정된 항의 개수가 생성될 때까지 계속됩니다.
수열 출력
이 마지막 단계에서는 피보나치 수열 프로그램을 개선하여 출력 형식을 추가하고 출력 표현을 향상시킵니다.
수열 출력을 개선하기 위해 fibonacci.c 파일을 업데이트합니다.
cd ~/project
nano fibonacci.c
코드를 수정하여 더 많은 형식 및 출력 옵션을 추가합니다.
#include <stdio.h>
int main() {
int n, first = 0, second = 1, next;
printf("피보나치 수열의 항의 개수를 입력하세요: ");
scanf("%d", &n);
printf("%d개 항의 피보나치 수열:\n", n);
printf("인덱스\t값\n");
printf("-----\t-----\n");
for (int i = 0; i < n; i++) {
if (i <= 1)
next = i;
else {
next = first + second;
first = second;
second = next;
}
printf("%d\t%d\n", i, next);
}
return 0;
}
프로그램을 컴파일하고 실행합니다.
gcc fibonacci.c -o fibonacci
./fibonacci
예시 출력:
피보나치 수열의 항의 개수를 입력하세요: 8
8개 항의 피보나치 수열:
인덱스 값
----- -----
0 0
1 1
2 1
3 2
4 3
5 5
6 8
7 13
설명
- 인덱스와 값 열이 있는 형식화된 표를 추가했습니다.
\t는 탭으로 구분된 열을 사용하여 깔끔한 표 레이아웃을 만듭니다.- 각 항은 이제 해당 인덱스와 함께 출력됩니다.
- 출력은 피보나치 수열의 명확하고 구조화된 보기를 제공합니다.
요약
이 실험에서는 사용자로부터 항의 개수를 입력받아 C 언어로 피보나치 수열을 생성하는 방법을 배웠습니다. 먼저 사용자에게 원하는 항의 개수를 입력하도록 요청한 후, 루프를 사용하여 피보나치 수열을 계산하고 출력합니다. 핵심 단계는 첫 두 피보나치 수를 초기화하고, 루프의 각 반복에서 이들을 업데이트하여 수열의 다음 숫자를 생성하는 것입니다.
마지막으로, 사용자의 입력에 따라 완전한 피보나치 수열을 출력합니다. 이 실험은 루프와 변수를 사용하여 프로그래밍 언어에서 고전적인 수학적 수열을 생성하는 실제적인 예시를 제공합니다.



