可以使用功率函数来计算像pow(200,200)这样非常大的值的功率。 也可以用于long long int值... pow(long long int,long long int)。
我收到此错误 /sources/tested.cpp:在函数'int main()'中:
/sources/tested.cpp:16:错误:调用重载'pow(long long int&,long long int&)'是不明确的
/usr/include/bits/mathcalls.h:154:注意:候选人是:双倍(双,双)
/usr/lib/gcc/i486-linux/4.0.1 /../../../../包括/ C ++ / 4.0.1 / CMATH:360: 注意:long double std :: pow(long double,int)
/usr/lib/gcc/i486-linux/4.0.1 /../../../../ include / c ++ / 4.0.1 / cmath:356:注意:float std :: pow( float,int)
/usr/lib/gcc/i486-linux/4.0.1 /../../../../ include / c ++ / 4.0.1 / cmath:352:注意:double std :: pow( double,int) /usr/lib/gcc/i486-linux/4.0.1/../../../../include/c++/4.0.1/cmath:348:注意:long double std :: pow(long double ,长双)
/usr/lib/gcc/i486-linux/4.0.1 /../../../../ include / c ++ / 4.0.1 / cmath:344:注意:float std :: pow(漂浮,漂浮)
答案 0 :(得分:4)
如果您正在寻找任意精确数学,那么您需要为它获取一个库。可能,您的平台没有足够大的数据类型本地执行此操作。查看GNU MP。
答案 1 :(得分:1)
从错误消息中可以看出,没有pow
函数可以处理两个long long int
值。编译器会尝试自动将long long int
值转换为其他值(double
或long
等)。但它无法明确决定采取哪种功能。
您不能使用标准pow
函数来计算非常大的数字,例如pow(200, 200)
,因为结果不适合pow
函数所适用的任何数据类型定义 - 你会得到溢出或其他“错误”的答案。