本帖最后由 jackz007 于 2021-10-31 14:01 编辑 #include <stdio.h>
#include <math.h>
double sinx(double x , int n) /* n 代表要求用到的泰勒级数项数 */
{
long long b , i , j , s ;
double v ;
for(i = 0 , s = 1 , v = 0.0 ; i < n ; s = - s , i ++) {
for(b = 1 , j = (i + 1) * 2 - 1 ; j ; j --) b *= j ;
v += s * pow(x , (i + 1) * 2 - 1) / b ;
}
return v ;
}
int main(void)
{
int i , m , n[500] ;
double x[500] ;
for(m = 0 ; ;) {
scanf("%d%lf" , & n[m] , & x[m]) ;
if(n[m] <= 0) break ;
else m ++ ;
}
for(i = 0 ; i < m ; i ++) printf("%.3lf\n" , sinx(x[i] , n[i])) ;
}
编译、运行实况:D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
8 1.57
8 0.5233
0 0
1.000
0.500
D:\00.Excise\C>
|