반응형

C 언어, 피보나치 수열 for 문으로 구하기 

 

글, 수알치 오상문 

 

반복문을 이용하여 피보나치 수열 값을 구하는 예제입니다. 

피보나치 수열의 처음과 두 번째 값은 1입니다. (어떤 문제는 0,1을 처음, 두 번째로 보기도 함)

 

그 이후 3번째 n 부터는 그전(n-1)과 전에전(n-2)번째 값을 더한 값입니다. 

 

1, 1, 2, 3, 5, 8, 13, 21, ....    (또는 0, 1, 1, 2, 3, 5, 8, 13, 21, .... )

 

 

#include <stdio.h>

 

int fibonacci(int n) 

{
  int i;
  int one = 1 , two = 1, result = -1;  // one은 n-2, two는n-1 값 
 
  if(n==1 || n==2)  // 1 또는 2면 1을 돌려줌
    return 1;
  else {
    for(i=3; i<=n; i++) {
      result = one + two;   // 직전(n-1)과 직직전(n-2) 값을 더해서 돌려줌 
      one = two;      // 직직전(n-2) = 직전(n-1)
      two = result;     // 직전(n-1) = 현재값(now)  
    }   
  }  
  return result; 
}

 

int main(int argc, char *argv[]) 

{

  int i;
 
  for(i=1; i<=20; i++)
    printf("%d 번째 피보나치 수열 값: %d\n", i, fibonacci(i));
 
  return 0;
}

 

 

<이상> 

 


 

반응형

+ Recent posts