/*
02.*Copyright (c)2016,烟台大学计算机与控制工程学院
03.*All rights reserved.
04.*文件名称:main.cpp
05.*作 者:李钊
06.*完成日期:2016年3月22日
07.*版 本 号:v1.0
08.*
09.*问题描述:用sin泰勒展示编写程序,求出所给的X的正弦。
10.
11. 输入描述:
12.*输出描述:结果
13.
*/
#include <iostream>
#include <cmath>
using namespace std;
const double pi=3.1415926;
double mysin(double x);
int jiecheng(int f);
double myabs(double z);
double mi(double p1,int p2) ;
int main()
{
cout<<"sin(π/2)得值为"<<mysin(pi/2)<<endl;
cout<<"sin(56°)得值为"<<mysin(56.0/180*pi)<<endl;
return 0;
}
double mysin(double x)
{
int a=-1,i;
double sum=0,c,y;
for(i=1;y>1e-6;i+=2)
{
a=-a;
c=a*mi(x,i)/jiecheng(i);
sum=sum+c;
y=myabs(c);
}
return sum;
}
int jiecheng(int f)
{
if(f==0||f==1)
return 1;
else
return f*jiecheng(f-1);
}
double myabs(double z)
{
if(z<0)
return -z;
else
return z;
}
double mi(double p1,int p2)
{
double s=1.0;
int j;
for(j=1;j<=p2;j++)
s=s*p1;
return s;
}
运行结果:
学习心得:
函数与递归的循环运用
知识点总结:
递归方法