数学-快速幂
2020-04-06 17:54:20
问题描述:
计算an % b,其中a,b和n都是32位的非负整数。
样例
例如 231 % 3 = 2
例如 1001000 % 1000 = 0
挑战
O(logn)
问题求解:
public int fastPower(int a, int b, int n) { if (n == 1) return a % b; if (n == 0) return 1 % b; long res = fastPower(a, b, n / 2); res = (res * res) % b; if (n % 2 == 1) { res = (res * a) % b; } return (int) res; }