小算法-快速幂

来源:互联网 发布:宁夏干部网络培训学校, 编辑:程序博客网 时间:2024/06/06 01:13

和cmath库里的pow函数作用一样,但速度快的多,原理是b可以拆成n个2的幂值,然后把b转化为二进制,判断各位上是否为一,是则累乘,否则a*a

上代码

#include<iostream>#include<cstdio>using namespace std;int a,b,c;int res;int pw(int x,int y);int main(){cin>>a>>b;c=pw(a,b);cout<<c<<endl;return 0;}int pw(int x,int y){res=1;while(b){if(b&1)res*=a;a*=a;b>>=1;}return res;}

GG

原创粉丝点击