编程求 sin(x) 值,题目会说明条件的,例如精度要求、展开方式等。这里用泰勒展开计算公式如下:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int i = 0; //(-1)^i 控制符号
int k = 1; //(k)! x^k 控制分母 控制指数
double x; //输入sin(x), sin(0)=0 sin(π/2)=1
double temp = 1; //暂存独立分项 且精度控制
double result = 0; //输出结果
long num = 1; //暂存分母 num = (k)! 计算分母
cin >> x;
while (fabs(temp) >= 1e-8) // 若该项小于1e-8 即精度符号要求, 则跳出循环,输出结果
{
num *= (k == 1) ? 1 : (k - 1) * (k);
temp = pow(-1, i++) * pow(x, k) / num;
result += temp;
k += 2;
}
cout << "sin(x) :" << result << endl;
return 0;
}