求幂函数代码比较
Posted Ying_zx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求幂函数代码比较相关的知识,希望对你有一定的参考价值。
常规求幂
1 int pow1(int a,int b) 2 { 3 int r=1; 4 while(b--) 5 r*=a; 6 return r; 7 }
二分求幂(一般)
int pow2(int a,int b) { int r=1,base=a; while(b!=0) { if(b%2) r*=base; base*=base; b/=2; } return r; }
二分求幂(位操作,同pow2)
int pow4(int a,int b) { int r=1,base=a; while(b!=0) { if(b&1) r*=base; base*=base; b>>=1; } return r; }
快速求幂(位运算,更复杂)
int pow3(int x,int n) { if(n==0) return 1; else { while((n&1)==0) { n>>=1; x*=x; } } int result=x; n>>=1; while(n!=0) { x*=x; if((n&1)!=0) result*=x; n>>=1; } return result; }
以上是关于求幂函数代码比较的主要内容,如果未能解决你的问题,请参考以下文章