作为作业,我应该实现一个大整数指数幂的分治算法。我知道卡拉图巴乘法算法,那么我可以应用什么分治算法来得到x^y的结果?
x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x
,可以进行 8 次幂运算 (256 的 log2)。int pow(int a,int b)
{
if(b == 0) return 1;
else if(b % 2 == 0) return pow(a,b/2) * pow(a,b/2);
else return a * pow(a,b-1);
}