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

+ Recent posts