본문 바로가기

C

[C] 1!+2!+3!+4!+5!+…+10!의 합계 (do~while)

 

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 factorial(unsigned int n)  // 재귀함수로 factorial을 만들어 준다
// unsigned long long을 선언해서 factorial의 큰 수 반환에 대비한다.
// 음수 factorial은 고려하지 않을 것이므로 자료형을 unsigned 로 준다. 
{
    if (n == 1)
        return 1;
    else
        return n * factorial(n-1);
}
 
 
int main()
{
    unsigned long long sum = 0;
    unsigned int i = 1;
    unsigned int n;
    scanf("%d"&n);
 
    do
    {
        sum += factorial(i);
        
        i++;
        
    } while(i <= n);
    
    printf("%lld\n", sum);
    
    return 0;
}
cs