《数据结构与算法分析》mark.Allen.weiss中提供的分治算法可以用于解决任意情形的指数运算(或者称为幂运算),是一个典型算法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
bool
isEven(
int
n)
{
return
n%2 == 0;
}
long
pow
(
long
x,
int
n)
{
if
(n == 0)
return
1;
if
(n == 1)
return
x;
if
(isEven(n))
return
pow
(x*x, n/2);
else
return
pow
(x*x, n/2)*x;
}
|