2016년 7월 16일 토요일

c언어 피보나치수열

2009.04.06작성

재귀함수를 사용한 피보나치 수열이당.

binary recursion으로 작성된 피보나치 함수의 비효율성을 개선한 Linear recursion 방식의 피보나치 함수를 작성하고

피보나치값을 구해서 출력하는 프로그램 작성하는 과제였다.

사실 구조체를 이용하여 구하고 싶었는데 구조체에 대한 공부가 부족하고 제출기한이 다가와서 if를 사용했다 ㅠㅠ

#include<stdio.h>

void fib(int n, int a, int b, int t);
void main()
{
int n,a=1,b=0,t=0;

printf("피보나치수열의 알고싶은 항을 입력하세용! \n");
printf("n번째 항과 n-1번째 항이 순서대로 출력됩니다^3^ \n");
scanf("%d",&n);

fib(n,a,b,t);

return;
}

void fib(int n, int a, int b, int t)
{
 if(n==1) {
  printf("(%d,%d)\n",a,b);
  return;}
 if(n<0) {
  a=0;
  printf("(%d,%d)\n",a,b);
  return;}
 t=a;
 a=a+b;
 b=t;

 fib(n-1,a,b,t);
 return;
}

댓글 없음:

댓글 쓰기