문제 14 · 라이프니츠 공식 빈칸 채우기
문제 14 [3점]
아래 원주율
cpp
cout << "정수 n을 입력하세요: ";
int n;
cin >> n;
double sum = 0.0;
// 라이프니츠 급수 표현, 빈칸을 채우세요.
for (int i = 1; i <= n; i++) {
/* 각 항을 합산합니다.
빈칸 1
*/
}
/* 급수를 바탕으로 π 값을 계산합니다.
빈칸 2
*/풀이 및 해설
라이프니츠 급수의 +, 짝수 번째 항이 - 로 번갈아 나타납니다.
빈칸 1 — 각 항을 부호와 함께 sum에 더합니다.
cpp
sum += ((i % 2 == 1) ? 1.0 : -1.0) / (2 * i - 1);빈칸 2 — 급수의 합은
cpp
double pi = 4 * sum;
cout << "pi ≈ " << pi << endl;부호를 pow(-1, i + 1)로 써도 되지만, 정수 판별(i % 2)이 더 간단하고 정확합니다. 이 급수는 수렴이 느려서 n을 크게 해도 정확도가 서서히 올라갑니다(n = 100000일 때 3.141583 정도).