我寫了下面這個簡單的函數來執行模冪運算。但是,當指數參數大於約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