X的N次方---power()问题
double Power(double x, int n) /* assumes n >= 0 */{
double retval;
retval = 1.0;
while (n > 0) {
if (n%2 == 1) {
retval *= x;
}
x *= x; /* square */
n /= 2; /* halve */
}
return (retval);
}
这是一个简化计算X的n次方的程序。
问题1:现在这个程序假设的是n>0, 如何改写power(),让这个程序接受所有n值。(比如X^-2)
问题2:就现在这个程序,power(2.0, -1)所归还的是什么?
问题3:手写一个列表来表示 x, n, retval, 分别在这个程序的执行过程中所拥有的值。