首页 > 其他 > 详细

常用技巧(一)

时间:2020-04-30 23:54:02      阅读:111      评论:0      收藏:0      [点我收藏+]

快速计算整数x的n次幂

     技术分享图片

技术分享图片

当n&(1<<i)==1时,ai=1;当n&(1<<i)==0时,ai=0。设乘法中每一项为m(i)^ai,则m(i)每一项为前一项的平方,首项为x,即m(i+1)=m(i)^2,m(0)=x。则x^n为ai为1时m(i)的值的乘积。

代码如下:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 long long QP(long long x,long long n)
 4 {
 5     long long z=1;
 6     while(n)
 7     {
 8         if(n&1)
 9         {
10             z*=x;
11         }
12         x*=x;
13         n=n>>1;
14     }
15     return z;
16 }
17 int main()
18 {
19     long long x,n;
20     cin>>x>>n;
21     cout<<QP(x,n)<<endl;
22     return 0;
23 }

 

 

 

技术分享图片

常用技巧(一)

原文:https://www.cnblogs.com/0--0/p/12811465.html

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