给定整数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-1次乘法 **/
public long f(x, n) {
long sum= 1;
for(int i=0; i < n; i++) {
temp = 1 + x * sum;
}
return sum;
}