C++ 使用斯特林';s阶乘公式

C++ 使用斯特林';s阶乘公式,c++,formula,C++,Formula,我正试图编写一个代码,用斯特林公式计算一个数字的近似阶乘 下面是计算它的一行: appFact = pow(exp, -num) * pow(num, num) * sqrt(2 * num * PI); 错误出现在pow(exp,-num)处,pow以红色下划线 IntelliSense: no instance of overloaded function "pow" matches the argument list 25 变量声明为: float num, num2, num3, n

我正试图编写一个代码,用斯特林公式计算一个数字的近似阶乘

下面是计算它的一行:

appFact = pow(exp, -num) * pow(num, num) * sqrt(2 * num * PI);
错误出现在pow(exp,-num)处,pow以红色下划线

IntelliSense: no instance of overloaded function "pow" matches the argument list 25
变量声明为:

float num, num2, num3, num4, MEAN, stanDev, VARI, appFact, exp; 
readFile >> num >> num2 >> num3 >> num4;  
appFact = pow(exp, -num) * pow(num, num) * sqrt(2 * num * PI); 

尝试包含适当的头文件:

#include <cmath>

尝试包含适当的头文件:

#include <cmath>

记住斯特林公式!分数(n/e)中的分母当然是欧拉的e,e=2.71828(5位)。请参阅:)。

记住斯特林公式!分数(n/e)中的分母当然是欧拉的e,e=2.71828(5位)。请参阅:)。

请显示
exp
num
的声明。尤其是
exp
。在没有检查斯特林公式的情况下,也有可能在第一次调用
pow
时,您已经执行了exchanegd
exp
num
——也许您还可以提供公式?float num、num2、num3、num4、MEAN、stanDev、VARI、appFact、exp;readFile>>num>>num2>>num3>>num4;appFact=pow(exp,-num)*pow(num,num)*sqrt(2*num*PI);公式是e^-nn^nsqrt(2*pi*n)是的,我正在试图找出两个参数的类型
float
的e实际上是什么,比如
pow(1.0f,1.0f)
,它应该编译得很好,不是吗?也许智能感知被搞糊涂了。如果这是您的实际代码,那么可能首先应该为
exp
赋值,比如
exp=2.718281828。顺便说一下,我记得,公式中的‘e’是“欧拉数”的缩写,而不是“指数”。干杯,请出示
exp
num
的声明。尤其是
exp
。在没有检查斯特林公式的情况下,也有可能在第一次调用
pow
时,您已经执行了exchanegd
exp
num
——也许您还可以提供公式?float num、num2、num3、num4、MEAN、stanDev、VARI、appFact、exp;readFile>>num>>num2>>num3>>num4;appFact=pow(exp,-num)*pow(num,num)*sqrt(2*num*PI);公式是e^-nn^nsqrt(2*pi*n)是的,我正在试图找出两个参数的类型
float
的e实际上是什么,比如
pow(1.0f,1.0f)
,它应该编译得很好,不是吗?也许智能感知被搞糊涂了。如果这是您的实际代码,那么可能首先应该为
exp
赋值,比如
exp=2.718281828。顺便说一下,我记得,公式中的‘e’是“欧拉数”的缩写,而不是“指数”。干杯,嗯,同样的问题;IntelliSense:没有重载函数“std::pow”的实例与参数列表匹配。那么,什么类型是
exp
num
?这就是消息所指的“参数列表”。如果您根本没有声明
exp
,那么在编译代码时可能会出现编译器错误。我不会依赖IntelliSense来告诉您编译器错误;一般来说,当你的代码已经(大部分)正确编译时,它工作得最好;IntelliSense:没有重载函数“std::pow”的实例与参数列表匹配。那么,什么类型是
exp
num
?这就是消息所指的“参数列表”。如果您根本没有声明
exp
,那么在编译代码时可能会出现编译器错误。我不会依赖IntelliSense来告诉您编译器错误;通常,当您的代码已经(大部分)正确编译时,它工作得最好。