给定整数x,定义函数A(n)=1+x+x2+x3+…+xn(n为整数且n>=0).已知乘运算的时间远大于加运算,输入x,n;如何尽可能快的求出A(n)? 要求: 1)描述思路(2分) 2)评估你的算法需要进行多少次乘法?(3分) 3)请用你熟悉的编程语言编码实现(5分)
/**
*A(n) = 1 + x(1 + x(1 + x(...) ))
*需要n次乘法 **/ public long an(x, n) {
long temp = 1;
for(int i=0; i < n; i++) {
temp = 1 + x * temp;
}
return temp;