반응형

C 언어, 피보나치 수열 출력

 

글. 오상문 sualchi@daum.net 

 

다른 게시물에도 피보나치 출력 코드가 있으니 함께 참고하기 바립니다.

 

이 예제에서 피보나치 수열 순서는 다음과 같다고 가정합니다.

 

0, 1, 1, 2, 3, 5, 8, 13, ....

 

n번째까지 피보나치 수열을 출력하는 출력 코드는 다음과 같습니다.

 

//---------------------------------------------------------

#include <stdio.h>

 

int main()
{
  int count, n1, n2, i;
 
  printf("피보나치 수열 개수: ");
  scanf(" %d", &count);   // count : 피보나치 수열 개수 입력
 
  if(count<1)
    return 0;
  if(count==1)    
    printf("0, \n");
  else if(count>=2)
    printf("0, 1");  
 
  n1=0, n2=1;
  for(i=3; i<=count; i++) {
    printf(", %d", n1+n2);
    n2=n1+n2;
    n1=n2-n1;
 }
 
 return 0;
}

//---------------------------------------------------

 

참고로 아래 코드 부분은 임시변수 temp를 이용하여 처리할 수도 있습니다. 

 

n2=n1+n2;

n1=n2-n1;

 

// temp 변수를 이용하기

 

temp = n1+n2;

n1 = n2;

n2 = temp;


n1, n2는 그 다음 수열 항목을 구하기 위한 직전, 직직전 항목을 의미합니다.

새 항목을 구하게 되면 그 다음 항목을 구하기 위해 n1, n2도 새 값을으로 

갱신하는 과정입니다. 


  0.   1.   1.  2.  3.  4, ... 
  |     |    |
 n1   n2  다음항목 
 
다음항목 = n1 + n2
 

<이상> 

 

 

반응형

+ Recent posts