二分法运算,减少运算次数

1-1、实验内容
给定a和n,用二分法设计出求a的n次方的算法。要求仅使用乘法计算不可以直接用指数运算,并尽量减少乘法的计算次数。


double f(double a, int n) {
    return n == 1 ? a : f(n/2) * f(n/2) * ( n%2 == 0 ? 1 : a );
}

不就是乘以n次a嘛,二分法就是将n除2,再除2,直到余数为1
初始temp=a
n除2的过程中设置一个temp* = temp
最后temp*=a就行了

采用累乘应该可以吧
x = x * x
x的次方按(1 2 4 8…)二进制数字,直接选取要用的次幂