这是一个求cosx近似值的函数,分母的值为阶乘;我通过2种方式对分母赋值,一种是通过中间变量再赋值给分母,一种是直接对分母赋1对其求阶乘
这是通过中间变量赋值(运行错误没有输出)
这是主函数
这个是最初的求分母的方式(运行错误)
这个是更改过的方式(正确运行)
为什么同样的逻辑第一种只是增加了个中间变量赋值就错误没有输出呢
这是一个求cosx近似值的函数,分母的值为阶乘;我通过2种方式对分母赋值,一种是通过中间变量再赋值给分母,一种是直接对分母赋1对其求阶乘
这是通过中间变量赋值(运行错误没有输出)
这是主函数
这个是最初的求分母的方式(运行错误)
这个是更改过的方式(正确运行)
为什么同样的逻辑第一种只是增加了个中间变量赋值就错误没有输出呢
可以将分母赋值为double类型的1.0,然后在求阶乘时,在循环中将1.0乘上i,这样就可以避免出现运行错误而没有输出的问题。
以下是修改后的代码:
double cosx(double x, int n) {
double result = 1.0;
double numerator = 1.0;
for(int i = 1; i <= n; i++) {
numerator *= -x * x;
result += numerator / (double)(2 * i * (2 * i - 1));
}
return result;
}