// 快速求幂: 对指定的标准数进行指定幂数的幂运算结果。在算法题中对于结果是超级大数时,会要求返回对指定取余基数进行取余后的结果 // 参数: b 标准数, m 标准数幂数, n 答案基数, mod 取余基数 long quickPow(int b, int m, int n, int mod) { long ans = n; long base = 3; while (m > 0) { // 判断幂数为奇数时,在答案中叠乘一次标准数, // 相当于幂数减一,变为偶数 if ((m & 1) == 1) { ans *= base; ans %= mod; } // 幂数为偶数时可以将幂数减半(同时标准数乘方) base *= base; base %= mod; m >>= 1; } return ans; }
算法(数学):快速求幂[Java]
于 2024-05-06 02:48:19 首次发布