본문 바로가기

백준

6376)e 계산

https://www.acmicpc.net/problem/6376


e를 구하는 공식도 나와있어서 풀기에 어려운 문제는 아니다.


그렇지만 팩토리얼 값과 e값을 i값에 따라 처음부터 구해가는 것이 아니라 


동적 계획법으로 이전에 구했던 값을 이용하는 형태로 f와 e를 구했다.


double형으로 표현된 정수를 구분하기 위한 방법도 사용됬다.


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
32
#include<stdio.h>
#define MAX 9
 
int main() {
    double e[MAX+1= {0.0};
    int f[MAX+1];
    
    f[1= 1;
    for (int i = 2; i <= MAX;i++) {
        f[i] = f[i - 1* i;
    }
    
    e[0= 1;
    for (int i = 1; i <= MAX;i++) {
        e[i] = e[i - 1+ 1 / (double)f[i];
    }
 
    printf("n e\n");
    printf("- -----------\n");
    for (int i = 0; i <= MAX; i++) {
        if (e[i] == (int)e[i]) { //정수
            printf("%d %d\n", i, (int)e[i]);
        }
        else { //실수
            if(i != 2)printf("%d %.9lf\n", i, e[i]);
            else printf("%d %.1lf\n", i, e[i]);
 
        }
    }
 
    return 0;
}
cs


'백준' 카테고리의 다른 글

1789)수들의 합  (0) 2019.02.02
10798)세로읽기  (0) 2019.02.02
4659)비밀번호 발음하기  (0) 2019.02.02
3460)이진수  (0) 2019.02.01
2799)블라인드  (0) 2019.01.31