数学公式系列一——快速幂和快速加

快速幂:

 1 long long quickpow(long long m, long long n, long long k)
 2 {
 3     long long res = 1;
 4     while (n > 0)
 5     {
 6         if (n & 1)
 7             res = (res * m) % k;
 8         m = (m * m) % k;
 9         n = n >> 1;
10     }
11     return res;
12 }

快速加:

 1 long long quickplus(int m, int n, int k)
 2 {
 3     long long res = 0;
 4     while (n > 0)
 5     {
 6         if (n & 1)
 7             res = (res + m) % k;
 8         m = (m + m) % k;
 9         n = n >> 1;
10     }
11     return res;
12 }

参考链接:http://www.cnblogs.com/qscqesze/p/5129856.html 

猜你喜欢

转载自www.cnblogs.com/lfri/p/9317093.html