我需要在我的 C++ 程序中使用 pow,如果我调用pow()
这样运行:
long long test = pow(7, e);
Where
e 是一个整数值,值为 23。
我总是得到821077879
因此。如果我用Windows计算器计算它我得到27368747340080916343
..这里出了什么问题? ):
我尝试转换为不同的类型,但这里没有任何帮助...这可能是什么原因?我如何使用pow()
正确吗?
Thanks!
结果是不适合long long
.
如果你想处理非常大的数字,那么使用像这样的库GMP http://gmplib.org/
或者将其存储为浮点(这不会那么精确)。
应用模:
const unsigned int b = 5; // base
const unsigned int e = 27; // exponent
const unsigned int m = 7; // modulo
unsigned int r = 1; // remainder
for (int i = 0; i < e; ++i)
r = (r * b) % m;
// r is now (pow(5,27) % 7)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)