/*
*copyright (c) 2014, 烟台大学计算机学院.
*All rights reserved.
*文件名称:test.cpp
*作者:陆云杰
*完成日期:2014年11月11日
*版本号:v1.0
*
*
*问题描述:写泰勒公式
*程序输入:两个角度
*程序输出:这两个角度的sin值
*/
#include <iostream>
using namespace std;
double mysin(double);
double fac(int);
double power (double,int);
const double pi=3.1415926;
int main( )
{
cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;
cout<<"sin(56°)的值为"<<mysin((0.56/1.8)*pi)<<endl;
return 0;
}
double mysin(double x)
{
double y,sum=0;
for(int i=1;;++i)
{
int n=2*i-1;
y=power(x,n) / fac(n);
if(y<0.000001)
break;
if(i%2==0)
y=-y;
sum+=y;
}
return(sum);
}
double fac(int x)
{
int y=1,z=1;
for (; y<=x; ++y)
z*=y;
return(z);
}
double power (double x,int y)
{
double m=1;
for(int i=1;i<=y;++i)
m*=x;
return(m);
}
学习心得:用很多次的调用函数!