</pre><pre name="code" class="cpp">/********运行时间为o(logN)********/
#include<stdio.h>
int main()
{
long int Pow(long int x,int N);
int IsEven(int N);
long int a;
int m;
scanf("%ld\n%d",&a,&m);
printf("%ld",Pow(a,m));
return 0;
getchar();
}
/********求幂的递归算法********/
long int Pow(long int 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;
}
/********判断是偶数还是基数********/
int IsEven(int N)
{
if(N%2==0)
return 1;
else
return 0;
}
高效率取幂算法
最新推荐文章于 2024-03-03 21:35:15 发布