알고리즘 문제
[백준] 6376번 e 계산
feelcoding
2020. 2. 11. 21:43
728x90
https://www.acmicpc.net/problem/6376
6376번: e 계산
문제 e는 \[e=\sum_{i=0}^{n} {\frac{1}{i!}}\] 이다. 여기서 n은 무한대이다. 매우 작은 n에 대해서, e의 근사값을 구해보자. 출력 아래 결과와 같은 형식으로 e의 근사값을 n = 0부터 9까지 출력한다. 예제 입력 1 복사 예제 출력 1 복사 n e - ----------- 0 1 1 2 2 2.5 3 2.666666667 4 2.708333333...
www.acmicpc.net
문제 자체는 어렵지 않았는데 출력 형식 조정하느라 애를 먹었다.
처음에는 for문을 0부터 9까지 돌리면서 cout << n << setprecision(10) << sum <<'\n'; 했는데 틀려서
for문을 0부터 9까지 돌리면서 cout << n << " " << fixed << setprecision(9) << sum << '\n'; 했는데 또 틀렸다.
결국은 for를 둘로 나눠서 출력했더니 맞았다.
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
cout << "n e" << '\n';
cout << "- -----------" << '\n';
for (int n = 0; n <= 2; n++) { //n
double sum = 0;
for (int i = 0; i <= n; i++) {
int denominator = 1;
for (int j = i; j > 0; j--) {
denominator *= j;
}
sum += (1 / (double)denominator);
}
cout << n << " " << sum << '\n';
}
for (int n = 3; n <= 9; n++) { //n
double sum = 0;
for (int i = 0; i <= n; i++) {
int denominator = 1;
for (int j = i; j > 0; j--) {
denominator *= j;
}
sum += (1 / (double)denominator);
}
cout << n << " " << fixed << setprecision(9) << sum << '\n';
}
return 0;
}
728x90