眾所周知,快速冪是優化對數的次方運算的最普遍手段。在學習快速冪的思想時,其分治思想容易讓大家用簡單的遞歸實現。
但其實,除了遞歸之外,更好的方法會是簡單的 WHILE循環。下面貼代碼:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <vector>
using namespace std;
int quickpow(int x,int y)
{
int n=1;
while(y!=0)
{
if (y&1) n*=x;
x=x*x;
y=y>>1;
}
return n;
}
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",quickpow(a,b));
}
*記得要用位運算優化哦QWQ
PS:這是我的第一篇博文,在此立下FLAG認真刷題,更新BLOG ,加油做一名有志向的蒟蒻QAQ