카테고리 없음

[C언어] 피보나치(fibonacci) 수열 출력함수

s뽈록이s 2013. 1. 25. 12:21
void fibonacci(int su)
{
	int arr[2] = {0, 1}, i, temp;

	printf("%d\t", arr[0]);
	if(su > 1)printf("%d\t", arr[1]);
	temp = arr[0] + arr[1];
	arr[0] = arr[1];
	arr[1] = temp;
	for(i = 0; i < su - 2; i++)
	{
		temp = arr[0] + arr[1];
		printf("%d\t", temp);
		arr[0] = arr[1];
		arr[1] = temp;
	}
}

void main()
{
	int su;

	back:
	printf("출력할 피보나치 수열의 갯수 : ");
	scanf("%d", &su);

	if(su < 1)
	{
		printf("잘못된 갯수를 입력하셨습니다.\n");
		goto back;
	}

	fibonacci(su);
}

프로그램 실행화면


피보나치 수열을 출력하는 함수를 만들었다. 피보나치 수열을 출력하는 갯수는 1이상이어야 한다. 이를 검사하고 피보나치 함수의 매개변수로 그 값을 넘겨준다. 피보나치 수열은 이 전에 출력되어진 두 개의 수를 더한 값이 이번에 출력할 값이 되는 수열이다.


그래서 두 개의 수를 기억하고 있어야 하기 때문에 arr[2]를 사용했다. 그리고 이번에 출력할 값을 계산 후 저장하고 순서에 맞게 arr[2]에 집어 넣기 위해 temp를 사용했다. 간단히 구현할 수 있는 피보나치 수열이다.