首页 > 其他 > 详细

数学-快速幂

时间:2020-04-06 18:06:01      阅读:59      评论:0      收藏:0      [点我收藏+]

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;
    }

  

 

Weekly Report - alias:v-yuahu, 20200330-20200405

数学-快速幂

原文:https://www.cnblogs.com/hyserendipity/p/12643265.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!