140. 快速幂
发布日期:2021-06-28 19:27:28 浏览次数:3 分类:技术文章

本文共 456 字,大约阅读时间需要 1 分钟。

140. 快速幂

 

 

计算
a ^ n \% b
a
n
%
b
其中a,b和n都是32位的非负整数。

样例

例如 2
31
 % 3 = 2
例如 100
1000
 % 1000 = 0

挑战

O(logn)
 
 
 
 
public class Solution {
    /**
     * @param a: A 32bit integer
     * @param b: A 32bit integer
     * @param n: A 32bit integer
     * @return: An integer
     */
    public int fastPower(int a, int b, int n) {
        if (n == 0) return 1 % b;
        if (n == 1) return a % b;
        long sum=fastPower(a,  b, n / 2);
         if(n%2==1){
             sum=sum*sum%b;
             return (int)(sum*a%b);
         }else{
             return (int)(sum*sum%b);
         }
     
    }
}
 

转载地址:https://blog.csdn.net/xwdrhgr/article/details/115933450 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:141. x的平方根
下一篇:139. 最接近零的子数组和

发表评论

最新留言

很好
[***.229.124.182]2024年04月17日 13时25分27秒