寻找n^p的算法是:
unsigned long long power(unsigned n, unsigned p)
{
unsigned long long x=1, y=n;
while(p > 0)
{
if(p&1) x *= y;
y *= y;
p >>= 1;
}
return x;
}
有人可以解释这个算法背后的逻辑/数学。我知道它可以工作并针对一些测试用例(试运行)进行了解决。我的意思是它是如何工作的,以及这与一般的幼稚方法相比如何有效。