缘由pta习题,请问哪里有问题啊,和输出样例差了一点但我看不出错误了-编程语言-CSDN问答
double 余弦近似值funcos(double e, double x)
{//缘由https://ask.csdn.net/questions/7845862;0.01 -3.14 =-0.999899
bool 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。就是这样扩展定义的。