반응형
피보나치 수열(Fibonacci sequence)은 앞의 두 항의 합이 다음 항이되는 수열이다.
1번째 수를 1, 2번째 수를 1로 두고 3번째 수부터 앞의 두 항의 수를 더해간다.
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 ...
컴퓨터 프로그램에서는 반복문과 재귀호출의2 가지 방법으로 구현을 할 수 있다.
반복문을 이용한 피보나치 수열 구하기
#include <stdio.h>
#define N 15 // 출력할 개수
int main()
{
int first = 1;
int second = 1;
int i, third;
printf("%d %d ", first, second);
for (i = 3; i <= N; i++)
{
third = first + second;
printf("%d ", third);
first = second;
second = third;
}
return 0;
}
(Output)
재귀호출을 이용한 피보나치 수열 구하기
#include <stdio.h>
#define N 20 // 출력할 개수
unsigned int fibonacci_rcsv(unsigned int n)
{
if (n <= 1) return n;
else return fibonacci_rcsv(n - 2) + fibonacci_rcsv(n - 1);
}
int main()
{
int i;
for (i = 1; i <= N; i++)
printf("%u ", fibonacci_rcsv(i));
return 0;
}
반응형
'C_C++' 카테고리의 다른 글
(C언어) 최대공약수 최소공배수 구하기 GCM LCM (0) | 2022.10.21 |
---|---|
(C/C++) 소수인지 판단 is_prime_ number (0) | 2022.10.21 |
(C언어) 동적메모리 할당: malloc, calloc, realloc, free (0) | 2022.10.20 |
(C/C++) 1부터 1000까지의 합, 100항마다 합을 출력하기 (0) | 2022.10.19 |
(C언어) 1부터 100까지의 합, 짝수의 합, 홀수의 합 구하기 (0) | 2022.10.19 |