функция g ++ включена в компилятор g ++ - PullRequest
0 голосов
/ 12 октября 2009

можно использовать функцию мощности для вычисления мощности очень больших значений, таких как pow (200,200). также может использоваться для значений long long int ... pow (long long int, long long int).

я получаю эту ошибку /sources/tested.cpp: в функции 'int main ()':

/ sources / tests.cpp: 16: ошибка: вызов перегруженного 'pow (long long int &, long long int &)' неоднозначен

/ usr / include / bits / mathcalls.h: 154: примечание: кандидаты: double pow (double, double)

/ USR / Библиотека / 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: note: 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: note: float std :: pow ( плавать, плавать)

Ответы [ 2 ]

5 голосов
/ 12 октября 2009

Если вам нужна математика с произвольной точностью, вам понадобится библиотека для нее. Вероятно, ваша платформа не имеет достаточно больших типов данных, чтобы сделать это изначально. Проверьте GNU MP .

1 голос
/ 12 октября 2009

Как видно из сообщений об ошибках, нет функции pow, которая работает с двумя значениями long long int. Компилятор пытается автоматически преобразовать значения long long int во что-то другое (double или long и т. Д.). но он не может однозначно решить, какую функцию взять.

Вы не можете использовать стандартную функцию pow для вычисления очень больших чисел, таких как pow(200, 200), потому что результат не подходит ни для какого типа данных, для которого определена функция pow - вы получите переполнение или другой «неправильный» ответ.

...