Похоже, что Pow () один из здесь
Какие'здесь происходит:
#include
#include
int main(void) {
printf("17^12 = %lf\n", pow(17, 12));
printf("17^13 = %lf\n", pow(17, 13));
printf("17^14 = %lf\n", pow(17, 14));
}
Я получаю этот вывод:
17^12 = 582622237229761.000000
17^13 = 9904578032905936.000000
17^14 = 168377826559400928.000000
13 и 14 не совпадают сВольфрам Альпа сравни:
12: 582622237229761.000000
582622237229761
13: 9904578032905936.000000
9904578032905937
14: 168377826559400928.000000
168377826559400929
Более того, этоне ошибается какой-то странной долей - этоне прав точно!
Если это до меня доходит до предела того, чтоpow()
может сделать для меня, есть ли альтернатива, которая может рассчитать это? Мне нужна функция, которая может рассчитатьx^y
, гдеx^y
всегда меньше, чем ULLONG_MAX.