# include <stdio.h>
/*
sinx = 시그마(n->무한대) (-1)^n * x^(2n+1) / (2n+1)!의 멱급수를 이용, sinx의 근삿값 구하기
*/
int buho (long int cnt) //부호를 결정하는 함수 check
{
long int buho=1;
if(cnt%2==1)
{
buho=-1;
}
else
{
buho=1;
}
return buho;
}
long double guepsu (long double x, long int cnt) //급수를 수하는 함수 check
{
long int count;
long double guepsu;
guepsu=x;
for(count=1; count<=2*cnt+1; count++)
{
guepsu=guepsu*x;
}
return guepsu;
}
long int factorial(long int cnt) //팩토리얼을 구하는 함수 check
{
int i=1;
long int factorial=1;
for(i=1; i<=cnt; i++)
{
factorial*=i;
}
return factorial;
}
long double An(long double x, long int cnt) //An을 구하는 함수 (일반항)
{
long double An;
An=buho(cnt)*guepsu(x,cnt)/factorial(2*cnt+1);
return An;
}
int main () //메인 함수
{
long int acr, n=0, cnt;
long double x, sum=0;
printf("각도를 입력하세요.(라디안 단위)");
scanf("%lf",&x);
fflush(stdin);
printf("원하는 정확도를 입력하시오. (숫자가 클수록 정확함)"); //멱급수를 어디까지 더할지 정한다.
scanf("%d",&acr);
for(cnt=0; cnt<=acr; cnt++)
{
sum=sum+An(x,cnt);
}
printf("답은 %lf 이다.",sum);
return 0;
}
딱봐도 급수(라기보단 x^n) 구하는 부분이 문제네
저부분 어떻게해야하나요...??ㅠㅜ
초기값을 x로 해버리면 무조건 x랑 곱해질 거 아니겟냐?
초기값을 1로 하던지 루프카운팅을 마이너스 1 하던지.. 니 알아서 해
아! 감사합니다