피보나치 수열은 첫 번째 항과 두 번째 항이 각각 0과 1로 고정되고, 세 번째 항부터는 바로 앞의 두 항을 더한 값이 되는 수열입니다(0, 1, 1, 2, 3, 5, 8, ...). 이번 글에서는 C#의 배열과 반복문을 활용해 피보나치 수열의 n번째 숫자를 구하는 함수를 작성하는 방법을 단계별로 살펴보겠습니다.
1단계: 배열 초기화
n번째 숫자를 num이라고 가정하고, 다음과 같이 인덱스 변수와 배열을 선언합니다.
int n = num - 1; int[] val = new int[n + 1];
2단계: 기본값 설정
피보나치 수열의 시작 값인 첫 번째와 두 번째 위치에 각각 0과 1을 저장합니다.
val[0] = 0; val[1] = 1;
3단계: 반복문으로 피보나치 수 계산
i=2부터 i<=n까지 반복하면서 앞의 두 요소를 더한 값을 현재 위치에 저장하여 피보나치 수를 차례대로 구합니다.
for (int i = 2; i <= n; i++) {
val[i] = val[i - 2] + val[i - 1];
}전체 코드 예제
지금까지의 내용을 하나로 합친 완성된 코드는 다음과 같습니다.
using System;
public class Demo {
public static void Main(string[] args) {
Demo g = new Demo();
int a = g.displayFibonacci(7);
Console.WriteLine(a);
}
public int displayFibonacci(int num) {
int n = num - 1;
int[] val = new int[n + 1];
val[0] = 0;
val[1] = 1;
for (int i = 2; i <= n; i++) {
val[i] = val[i - 2] + val[i - 1];
}
return val[n];
}
}실행 결과
8
위 코드에서 displayFibonacci(7)을 호출하면 7번째 피보나치 수인 8이 출력됩니다. 피보나치 수열은 0, 1, 1, 2, 3, 5, 8 순서로 진행되므로 일곱 번째 값이 8이 되는 것입니다. 이처럼 배열에 이미 계산된 값을 저장해 두고 재사용하는 방식은 중복 계산을 줄여주어 효율적입니다.