무한급수를 통하여 e^x의 값을 구하는 문제입니다. 제발 도와주세요
해긴
질문 제목 : 무한급수를 통해 x값이 0.5 , 1.0, 1.5, 2.0일때 e^x의 값을 구하기.
e^x의 값을 무한급수를 이용해서 구하는 문제인데요.
x의 값이 0.5 , 1.0, 1.5, 2.0 에 대한 e^x의 값을 출력하면 되는 문제입니다.
아래와 같이 코딩을 했는데
실행시켜보면은, x의값이 0.5, 1.0, 1.5, 2.0 증가는 되는데 e^x값이 0.5일때의 값만 출력이 되네요...
어디가 문제인지 모르겠네요ㅠㅠ
조언좀 부탁드릴게요.질문 내용 :
#include stdio.h
int main(void)
{
int i,j,k,fact;
double x=0.5,sum=0,pow,n=1;
for(k=1;k=4;k++)
{
for( i=0 ;n0.00001 ; i++ )
{
fact=1;
for( j=1 ; j=i ; j++ ) // 팩토리얼 구하는 부분
{
fact*=j;
}
pow=1;
for( j=1; j=i ; j++ ) // x^n 구하는 부분
{
pow*=x;
}
n = pow/fact;
sum+=(pow/fact);
}
printf(e^x : %lf 몇번: %d x: %f\n\n,sum, i, x);
x+=0.5;
}
return 0;
}
-
작약
디버깅해보니 n값이 계속 0이라
두번째루프부터 돌아가질 않아요
n==0인 이유는 지금 찾고있어요
추측하건데 n값의 오버플로우가 발생해서 n==0이 된거같아요
//n==0인 이유는 n이 n==0.000000000001228 이런식으로 수가 너무 작아 소수점 뒤인 1228부분을 무시해버린것같네요