代码上:
/*高效率的取幂运算*/
#include<stdio.h>
long int Pow( long int X, unsigned int N );//取幂函数
bool IsEven( unsigned int N );//判断偶数函数
int main()//主函数入口
{
printf("%ld\n", Pow( 5, 2));//测试
return 0;
}
long int Pow( long int X, unsigned 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;
}
}
bool IsEven( unsigned int N ){//判断参数是否为偶数
if( N % 2 == 0){
return true;
}
else{
return false;
}
}