본문 바로가기

C

[c 언어] 재귀함수를 활용한 피보나치 수열(1+1+2+3+5+8+13+…)의 합계(while, for, if)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
 
unsigned long long fibonacci(unsigned int n)  // 재귀함수로 fibonacci 반환 함수를 만들어 준다
// unsigned long long을 큰 수의  fibonacci 수열 반환에 대비한다. 
{
    if ((n == 1|| (n == 2))
        return 1;
    else
        return fibonacci(n-1+ fibonacci(n-2);
}
 
 
int main()
{
    unsigned long long sum = 0;
    unsigned int i = 1;
    unsigned int n;
    scanf("%d"&n);
 
    do
    {
        sum += fibonacci(i);
        printf("fibonacci number : %d\n", fibonacci(i));
        i++;
        
    } while(i <= n);
    
    printf("%lld\n", sum);
    
    return 0;
}
cs