标签:pre 拆分 space cout cin main ace amp pop
用位运算将幂指数转化成二进制,幂指数二进制展开,再将幂运算按指数的二进制拆分开来计算,这样便减少了运算的次数。(我TM在说什么)
#include<iostream> #include<queue> using namespace std; queue<int> code; int main() { int a,b; cin>>a; cin>>b;
//二进制转化,存在队列中 while(a) { int num; num=a&1; cout<<num<<endl; code.push(num); a=a>>1; } int flag=b; int lenth=code.size(); int result=1; for(int i=0;i<lenth;i++) { if(code.front()) result*=flag; code.pop(); flag*=flag; } cout<<result<<endl; }
标签:pre 拆分 space cout cin main ace amp pop
原文地址:https://www.cnblogs.com/a-night/p/9585964.html