码迷,mamicode.com
首页 > 其他好文 > 详细

快速幂

时间:2014-08-12 00:30:43      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:style   color   os   io   strong   ar   line   amp   

#include <iostream>
using namespace std;

int f( int a, int b )     //二分求幂(一般)


{

int r = 1, base = a;
while( b != 0 )
{ if( b % 2 )
r *= base;
base *= base;
b /= 2;
}
return r;

}

int main(int argc, char *argv[])
{
int a,n;
while(cin>>a>>n)
cout<<f(a,n)<<endl;
return 0;
}

 

 

#include <iostream>
using namespace std;

int f( int a, int b )                 //快速求幂(位操作)


{

int r = 1, base = a;
while( b != 0 )
{ if( b & 1 )
r *= base;
base *= base;
b >>= 1;

}
return r;
}


int main(int argc, char *argv[])
{
int a,n;
while(cin>>a>>n)
cout<<f(a,n)<<endl;
return 0;
}

 

 

 

 

 

 

 

 

 

 

 

 


#include <iostream>
using namespace std;

int f( int a, int n )
{

if(n==0)            return 1;
if(n%2==1)      return a*f(a,n/2)*f(a,n/2);
else                   return f(a,n/2)*f(a,n/2);

}

int main(int argc, char *argv[])
{
int a,n;
while(cin>>a>>n)
cout<<f(a,n)<<endl;
return 0;
}

 

 

 

 

 

 

#include <iostream>
using namespace std;

int f( int a, int n )
{

                 int t ;
if(n==0)             return 1;

    t=f(a,n/2);
if(n%2==1)     return a*t*t;
else                  return t*t;

 }

int main(int argc, char *argv[])
{
int a,n;
while(cin>>a>>n)
cout<<f(a,n)<<endl;
return 0;
}

快速幂,布布扣,bubuko.com

快速幂

标签:style   color   os   io   strong   ar   line   amp   

原文地址:http://www.cnblogs.com/2014acm/p/3905889.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!