lintcode ----快速幂

来源:互联网 发布:数据筛选删除数据 编辑:程序博客网 时间:2024/06/05 07:15

a^n % b

1.如果n 为奇数可以转化为 (a^(n/2) * a^(n/2) *  a ) %b = ((a^(n/2)%b * a^(n/2)%b)%b * a%b) %b

2. 如果n 为偶数可以转化为   (a^(n/2) * a^(n/2) ) %b = (a^(n/2)%b * a^(n/2)%b)%b 


int fastPower(int a, int b, int n) {        // write your code here        if(n==0)            return 1%b;        else if(n==1)            return a%b;        else         {            long long tem = fastPower(a,b,n/2);            if(n&1)                return ((tem*tem)%b)*a%b;            else                 return (tem*tem%b);        }    }


0 0
原创粉丝点击