题目描述
编写程序计算x^ n,如果换一种方法计算 x^ n,9.6节的power函数速度可以更快。我们注意到,如果n是2的幂,则可以通过自乘的方法计算x^ n。例如 x^ 4 是x^ 2的平方,所以x^ 4可以用两次乘法计算,而不需要三次乘法。这种方法甚至可以用于n不是2的幂的情况。如果n是偶数,可以用公式x^n
= (x^ n/2)2;如果n是奇数,则x^ n = x * x^ (n-1)。编写计算x^n的递归函数(递归在n=0时结束,此时函数返回1)。
2 3
8
编写两个函数:main和power。下面给出power函数的原型:
int power(int x, int n);
在main函数中输入整数x和正整数n的值,调用power计算x^n,然后显示函数的返回值。输入
输入整数x和正整数n,x和n之间间隔一个空格。
输出
输出x^n的值。
样例输入
2 3
样例输出
8
#include <stdio.h>
int power(int x, int n);
int main(void)
{
int x, n;
scanf("%d %d", &x, &n);
printf("%d", power(x, n));
return 0;
}
int power(int x, int n)
{
if (n == 0)
{
return 1;
}
else if (n % 2 == 0)
{
int result = power(x, n / 2);
return result * result;
}
else
{
return x * power(x, n - 1);
}
}