眾所周知,快速冪是優化對數的次方運算的最普遍手段。在學習快速冪的思想時,其分治思想容易讓大家用簡單的遞歸實現。
但其實,除了遞歸之外,更好的方法會是簡單的 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