1003번) 피보나치함수

김동웅·2021년 1월 26일
0

algorithm

목록 보기
8/11

소스코드

#include <stdio.h>
int t;
int n;
int fibo[41];
int main(){
scanf("%d",&t);

for(int i=2;i<=40;i++){
	
	fibo[0]=0;
	fibo[1]=1;
	fibo[i]=fibo[i-1]+fibo[i-2];
}

for(int j=0;j<t;j++){

	scanf("%d",&n);
	
	if(n==0){
		printf("1 0\n");
		continue;
	}
	if(n==1){
		printf("0 1\n");
		continue;
	}
	else {
		printf("%d %d\n",fibo[n-1],fibo[n]);
		}
}

}


ex1) n이 4일때 -> 3,2
1) 3호출 => 2,1호출

2) 2호출 => 1,0 호출

1-1) 2호출 => 1,0 호출

0이 2번 , 1이 3번호출됨

ex) n이 5일때 -> 4,3

1) 4 => 3,2호출

1-0) 3 => 2,1 호출
1-1) 2 => 1,0호출
1-2) 1-0)의 2 => 1,0 호출

2) 3 = > 2,1 호출
2-1) 1)의 2=> 1,0 호출

0이 3번 , 1이 5번 호출됨

이러한 규칙으로 0이 fibo[n-1]번, 1이 fibo[n]번 호출됨을 알수 있다..

0개의 댓글