반응형
내 풀이
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
double sum = 0;
double num = 1;
for (int i = 1; i <= n; i++)
{
sum += 1 / num;
num *= i+1;
}
cout << sum << endl;
}
먼저 sum과 num을 두었습니다. num은 2! 3!의 분모 자리에 계속 곱해지는 수를 저장할 변수이며 먼저 sum을 진행한 후 num을 반복해서 곱해주는 것으로 마무리 지었습니다.
결과는 정답과 똑같이 나오는 것을 확인했습니다.
교수님 풀이
#include <iostream>
using namespace std;
int main() {
int n, denom = 1;
cin >> n;
double sum = 0;
for (int i = 1; i <= n; i++) {
denom *= i;
sum += 1.0 / denom;
}
cout << sum << endl;
return 0;
}
다음으로 교수님의 풀이였습니다. 결과값은 똑같지만 교수님의 풀이가 직관적으로 더 이해하기 쉽다는 것을 알 수 있었습니다. 저는 교수님이 만드신 변수의 denom 자리를 sum을 계산하고 곱하기 때문에 +1을 해준 후 곱해주었는데 교수님처럼 denom을 먼저 정의해주면 번거롭지 않게 할 수 있습니다.
변수 sum은 합계를 저장하고 초기값은 0으로 두었습니다.
변수 denom은 분모를 나타내며 초기값은 1입니다.
for은 1부터 n까지 반복하며 각 항의 합계를 더하며 denom 분모는 반복할 때마다 i의 팩토리얼로 업데이트를 해줍니다.
반응형
'IT 프로그래밍 > 객체지향프로그래밍' 카테고리의 다른 글
[C++] Finding the Smallest Positive Integer (0) | 2024.04.17 |
---|---|
[C++] 세 정수 오름차순 정렬 (0) | 2024.04.17 |
[C++] 양의 정수 n을 받은 후 합을 구하는 프로그램 (0) | 2024.04.17 |
[c++] 중복 숫자 제거 벡터 사용 (0) | 2024.04.17 |
[C++] static정의 참조 배열에 대한 예시 문구 (0) | 2024.04.17 |