快速幂
2015-03-01 23:46
183 查看
以下以求a的b次方来介绍
把b转换成二进制数。该二进制数第i位的权为
例如,11的二进制是1011,11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1
因此,我们将a¹¹转化为算
代码实现:
int pow(int a,int b)
{
int result=1;
int base=a;
while(b!=0)
{
if(b&1)
{
result=result*base;
}
base=base*base;
b=b>>1;
}
return result;
}
把b转换成二进制数。该二进制数第i位的权为
例如,11的二进制是1011,11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1
因此,我们将a¹¹转化为算
代码实现:
int pow(int a,int b)
{
int result=1;
int base=a;
while(b!=0)
{
if(b&1)
{
result=result*base;
}
base=base*base;
b=b>>1;
}
return result;
}
相关文章推荐
- 快速幂函数:迭代版
- POJ-1599 快速幂问题
- 快速幂
- POJ The Luckiest number 3696 数论(处理快速幂过程中超int64的情况)
- [WIKIOI 1250]Fibonacci数列(数论+数学+矩阵乘法+二分快速幂)
- HDU 4565So Easy!2012长沙邀请赛A题(共轭构造+矩阵的快速幂)
- HDU 2065 "红色病毒" 问题(二分快速幂)
- 菲波那契数列的快速幂矩阵求法
- poj 1845(等比数列前n项和及快速幂)
- 快速幂运算
- uvaoj 11029 Leading and Trailing 取log和快速幂
- 稍稍改良版的快速幂运算
- 快速幂(C语言实现) 超详细 (转载)
- 快速幂及快速幂取模
- 简单的快速幂
- poj 3613Cow Relays (矩阵乘法 快速幂)
- BZOJ-2242 计算器 快速幂+拓展欧几里得+BSGS(数论三合一)
- 快速幂运算
- 快速幂(C语言实现) 超详细 (转载)
- 快速幂模板