第四周项目二-太乐了

/*
 *Copyright(c)2016,烟台大学计算机与控制工程学院
 *All rights reserved
 *文件名称:123.cpp
 *作    者:王蕊
 *完成日期:2016年3月20日
 *版 本 号:v1.0
 *
 *问题描述:求sin(π/2)的值和sin(56°)的值,利用sinx=x-x^3/3!+x^5/5!-x^7/7!+...,精度要求达到小数点后6位
 *输入描述:无
 *程序输出:两个数,分别代表sin(π/2)的值和sin(56°)的值
*/
#include<iostream>
using namespace std;
const double pi=3.1415926;
double mysin(double x);
int jiecheng(int r);
double mi(double p1,int p2);
double myabs(double g);
int main()
{
    cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;
    cout<<"sin(56°)的值为"<<mysin(56.0/180.0*pi)<<endl;
    return 0;
}
double mysin(double x)
{
    double sum=0.0,t=1,m=1;
    int o=-1,i;
    for(i=1;m>=1e-6;i+=2)
    {
        o=-o;
        t=o*mi(x,i)/jiecheng(i);
        sum=sum+t;
        m=myabs(t);
    }
    return sum;
}
int jiecheng(int r)
{
    if(r==1||r==0)
        return 1;
    else
        return r*jiecheng(r-1);
}
double mi(double p1,int p2)
{
    double s=1.0;
    int j;
    for(j=1;j<=p2;j++)
        s=s*p1;
    return s;
}
double myabs(double t)
{
    if(t>0)
        return t;
    else
        return -t;
}
运行结果:

第四周项目二-太乐了_第1张图片

你可能感兴趣的:(第四周项目二-太乐了)