我写了下面这个简单的函数来执行模幂运算。但是,当指数参数大于约261,000时,它会发生段错误。为什么是这样?我该如何解决它?这个函数为什么会导致段错误?
我正在使用64位Ubuntu上的gcc进行编译。
感谢
unsigned int modex(unsigned int base, unsigned int exponent, unsigned int modulus)
{
if(exponent == 1)
return base;
base = base % modulus;
if(exponent == 0 || base == 1)
return 1;
return (modex(base, exponent - 1, modulus) * base) % modulus;
}
你有一个stackoverflow – ouah 2013-03-06 18:51:07