我编写了一个程序,从用户那里获取一个值 x 和一个整数 n,然后程序使用 taylor serie for arcsin http://tedmuller.us/Math/img/Taylor-arcsin.gif打印 arcsin(x)
但由于某种原因它不起作用。当我输入 x=1 时,我得到 1.19 而不是 pi/2 的输出。
这是我的代码:
#include <stdio.h>
#include <conio.h>
void main()
{
int i,n;
double x,sum,last;
printf("Please enter the x you wish to calculate arcsin(x) for \n");
scanf("%lf",&x);
printf("Enter n\n");
scanf("%d",&n);
last=x;
sum=last;
for(i=1;i<=n;i++)
{
last*=((x*x)*(2*i-1))/((2*i)*(2*i+1));
sum+=last;
}
printf("arcsin(%lf) = %lf",x,sum);
getch();
}
基本思想是:last 和 sum 都以 x 的值开始。然后我最后前进成为系列中的下一个数字,将其添加到总和,再次前进,添加到总和...冲洗并重复 n 次。