计算如下公式看,其中 r、s 的值键盘输入sinx近似值利用泰勒公式计算
sinx = - + - = *. (计算精度为)
测试用例为:
r = 5
s= 8
1.37781
源程序如下:
#include<iostream>
#include<cmath> //具有c++标准库中数学函数的说明
using namespace std;
const double TINY_VALUE = 1e-6;
double tsin(double x)
{
double g = 0; //g为sinx()最终结果
double t = x; //初始值x赋给t
int n = 1; //n 用于求分母
do{
g += t;
n++;
t = -t * x * x / (2 * n - 1) / (2 * n - 2);
}while(fabs(t) >= TINY_VALUE); //fabs()求double型变量的绝对值
return g;
}
int main()
{
double k, r, s;
cout << "r=";
cin >> r;
cout << "s=";
cin >> s;
if(r * r <= s * s)
{
k = sqrt(tsin(r) * tsin(r) + tsin(s) * tsin(s));
}
else
{
k = tsin(r * s) / 2;
}
cout << k << endl;
return 0;
}