问题及描述:
/*
*Copyright (c) 2016,烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:main.cpp
* 作 者:赵志君
* 完成日期:2016年3月24日
* 版 本 号:v1.0
*
* 问题描述:用泰勒展式编写程序,求sin的值
* 输出描述:输出两个数,sin(π/2)和sin(56°)的值
*/
#include<iostream>
using namespace std;
const double pi=3.1415926;
double mysin(double );
double myabs(double ,double );
double fang(double ,double );
double mu(double );
int main()
{
cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;
cout<<"sin(56°)的值为"<<mysin(pi*56.0/180.0)<<endl;
return 0;
}
double mysin(double x)
{
double k,i;
double s=0,n=1;
for(i=1;;i+=2)
{
k=myabs(x,i);
if(k==0)
break;
else
{
s=s+k*n;
n=-n;
}
}
return s;
}
double myabs(double x,double n)
{
double s;
s=fang(x,n)/mu(n);
if(s>0.00001)
return s;
else
return 0;
}
double fang(double x,double n)
{
if(n!=0)
return x*fang(x,n-1);
else
return 1;
}
double mu(double n)
{
if(n!=0)
return n*mu(n-1);
else
return 1;
}
运行结果:
学习心得:注意类型