2015. 2. 10. 18:04 Programing/C
피보나치 수열 재귀 함수, For loop
#include <stdio.h>
unsigned int Fibonacci(unsigned int n)
{
if(n<2)
return n;
else
return Fibonacci(n-1)+Fibonacci(n-2);
}
int main()
{
int i;
int j;
scanf ("%d", &j);
for( i=0; i<=j; i++)
printf("Fibonacci(%d) = %d\n", i, Fibonacci(i));
return 0;
}
j가 40대를 넘어서 부터 시간이 오래 걸리더군요... 재귀를 사용하지 않으면 더 빠른걸로 알고 있습니다만...
(http://slow-down.tistory.com/118 를 참조하였습니다. 문제시 삭제 하겠습니다.)
//
// File.c
// example2
//
// Created by 김 일호 on 13. 4. 11..
// Copyright (c) 2013년 김 일호. All rights reserved.
//
#include <stdio.h>
int main()
{
int a=0;
unsigned int i=0;
unsigned int j=1;
unsigned int q=0;
unsigned int k;
scanf("%d", &k);
for(a=0; a<k; a++)
{
printf("Fibonacci(%d) %5d\n",a+1, j);
q = i + j;
i = j;
j = q;
}
return 0;
}
이건 문제 없다만 unsigend int 형 범위를 벗어나 버린다.
'Programing > C' 카테고리의 다른 글
간단한 스택 구현 (0) | 2015.09.12 |
---|---|
scanf를 %s와 %c로 받는 차이 (0) | 2015.02.10 |
2차원 배열 함수 인자로 넘기기 예제 (0) | 2015.02.10 |
전치행렬 구현 (0) | 2015.02.10 |
십진수 127까지 이진화 (0) | 2015.02.10 |