你如何在c ++中使用带变量的指数?

Sou*_*lly 1 c++ variables exponent

所以我意识到#include是必要的,并且有一个pow(x,y),其中x ^ y可以工作......但是当我尝试使用pow(2,(num-1))时,它踢回了一个错误...

errorC2668:'pow':对重载函数的模糊调用

我的代码行如下

perfect = (pow(2,(num-1))) * (pow(2,num)-1);
Run Code Online (Sandbox Code Playgroud)

有什么建议?

提前致谢

编辑:

num确实声明为int.

num确实有一个值,从1开始并转到UINT_MAX

方程式中添加了星号

mat*_*tuf 8

编译器不知道要调用哪个pow()函数.此处列出的重载提供以下列表:

      float pow (       float base,       float exponent );
     double pow (      double base,      double exponent );
long double pow ( long double base, long double exponent );
      float pow (       float base,         int exponent );
     double pow (      double base,         int exponent );
long double pow ( long double base,         int exponent );
Run Code Online (Sandbox Code Playgroud)

编译器不会猜测要使用哪一个.使用强制转换使其显式化.

perfect = (pow(2.,(double)(num-1))) < (pow(2.,(double)num)-1);
Run Code Online (Sandbox Code Playgroud)

那里可能会有一些额外的演员,但他们不会伤害任何东西.