快速幂
求a的b次幂,如3^999次幂,最最普通的做法就是嵌套循环,不断累乘,最后得出结果,而快速幂算法可以更快的实现。
题目:
计算a^b = ?.
分析:
把b换成二进制,用位运算计算结果。
代码:
#include<cstdio>#include<iostream>#include<cstring>#include<string>using namespace std; int main(){ int a,b; while(cin>>a>>b){ //calculate a^b long long ans = 1; while(b){ if( b & 1 ){ //equals to b % 2 == 1 ans *= a; } a*=a; b/=2; } cout<<ans<<endl; }return 0;}
时间: 2024-10-12 19:08:26