首页 > 代码库 > LintCode-Fast Power
LintCode-Fast Power
Calculate the an % b where a, b and n are all 32bit integers.
Example
For 231 % 3 = 2
For 1001000 % 1000 = 0
Challenge
O(logn)
Solution:
1 class Solution { 2 /* 3 * @param a, b, n: 32bit integers 4 * @return: An integer 5 */ 6 public int fastPower(int a, int b, int n) { 7 if (n==0) return 1%b; 8 9 int res = fastPowerRecur(a,b,n);10 return res;11 }12 13 public int fastPowerRecur(int a, int b, int n){14 if (n==1)15 return a%b;16 17 long temp = fastPowerRecur(a,b,n/2);18 temp = temp*temp%b;19 int res = (n%2==0) ? (int) temp: (int)(temp*a%b);20 return res;21 }22 };
LintCode-Fast Power
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。