값 x가 주어졌을 때 사인(x) 급수의 합을 계산하는 문제를 생각해 봅시다. 사인(x) 급수는 다음과 같이 여러 개의 항으로 구성된 무한급수입니다.
sine(x) = x− x^3/fact(3) + x^5/fact(5) −x^7/fact(7)....
이러한 급수 기반 문제를 해결하려면 먼저 각도(degree)를 입력받아 라디안(radian) 값으로 변환해야 합니다. 그다음 급수의 모든 항을 순회하면서 각 항을 계산하고, 항마다 부호를 번갈아 적용하며 연산을 수행해 전체 합을 구합니다.
문제 해결 접근 방법
계산할 항의 개수(한계)와 각도를 입력받습니다.
거듭제곱 함수(pow)를 활용해 각 항을 순회하면서 합을 계산합니다.
최종 결과를 출력합니다.
예제 코드
n = 5
deg = 10
deg = deg*3.14/180
p=1
f=1
s=deg
sine=−1
for i in range(3,n+1,2):
deg = deg*sine
p = pow(deg,i)
f = f*i*(i−1)
s = s+p/f
print("The sum of the series of sine(10) is:", s)
코드 동작 원리
입력받은 각도에 3.14/180을 곱해 라디안 값으로 변환합니다.
변수 sine은 -1로 초기화되어 각 항을 계산할 때마다 부호를 번갈아 바꾸는 역할을 합니다.
f는 팩토리얼(fact) 값을 누적으로 곱해 계산하고, p는 해당 차수의 거듭제곱 값을 저장합니다.
range(3, n+1, 2)를 사용해 3차, 5차 항처럼 홀수 차수의 항만 반복 계산합니다.
실행 결과
위 코드 스니펫을 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
The sum of the series of sine(10) is: 0.17356104142876477