【使用函数求余弦COS函数的近似值】2022-11-27
缘由pta习题,请问哪里有问题啊,和输出样例差了一点但我看不出错误了-编程语言-CSDN问答
double 余弦近似值funcos(double e, double x)
{//缘由https://ask.csdn.net/questions/7845862;0.01 -3.14 =-0.999899bool p = 0, f = 0;int m = 0, mm = 0, jc = 0;double wcos = 0, cf = 0, ee = 1;ys:if (ee>e){if (m == 0)wcos = cf = jc = 1;else{mm = m; cf = jc = 1;fj:if (mm){ cf *= x; jc *= mm; --mm; goto fj; }ee = cf / jc;wcos += (p ? ee : -ee);p = !p;}m += 2;goto ys;}return wcos;
}std::cout << std::fixed << std::setprecision(6) << 余弦近似值funcos(0.01, -3.14) << "\n";
//常数项是零次方项。任何除0以外的数的0次方都是1 。如3的0次方是1,-1的0次方也是1,0的0次方没有意义。注:-1⁰=-1,但是(-1)⁰=1。前者是用0减1求零次方,后者是对整个-1求零次方。
//0的阶乘就是1,这是人为的规定。但是这个人为规定不是随意规定的。是根据正整数的阶乘运算关系扩展而来的。因为本来n(n是正整数)的阶乘就是从1×2×……×n这n个数相乘。但是这个定义对0就无效了。那么人们只能根据不同数的阶乘关系来扩展定义。从正整数的阶乘能看出来,(n + 1)!÷n! = n + 1,所以n! = (n + 1)!÷(n + 1)。那么把这个式子扩展到0上,就得到0! = 1!÷1 = 1÷1 = 1。就是这样扩展定义的。