快速冪

快速冪

思想:將指數二進制展開
複雜度:log n

//quick_pow
#include<iostream>
#include<cstdio>
using namespace std;
int quick_pow(long long a,long long b)
{
  long long ans=1,base=2;
  while(b!=0)
  {
    if(b&1)//從右至左二進最後一位爲1則乘2^此位
    ans*=base;
    base*=base;//提升2指數級
    b>>=1;//去掉最後一位
  }
  return ans;
}
int main()
{
int a,b;
while(~scanf("%d%d",&a,&b))
  cout<<quick_pow(a,b)<<endl;
}
發佈了64 篇原創文章 · 獲贊 42 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章