快速幂算法
来源:互联网 发布:linux怎么安装vmtools 编辑:程序博客网 时间:2024/06/06 13:02
参考:http://blog.csdn.net/jiange_zh/article/details/50684528
实现原理:
当n较大时,可使用快速幂:
**若n为偶数, base^n = base^(n/2) * base^(n/2);
若n为奇数, base^n = base * base^((n-1)/2) * base^((n-1)/2);**
递归代码:
double PowerWithUnsignedN(double base, unsigned int n){ if (0 == n) return 1; if (1 == n) return base; double res = PowerWithUnsignedN(base, n>>1); res *= res; if (n & 1) //n为奇数 res *= base; return res;}
非递归:
double PowerWithUnsignedN(double base, unsigned int n){ double res = 1.0; while (n > 0) { if (n & 1) res *= base; base *= base; n >>= 1; } return res;}
快速幂取模,在以上的代码中加了点东西
long long quick_mod(long long base,long long n,long long mod){ long long res=1; while(n>0) { if(n%2!=0) { res=(res*base)%mod; } base=(base*base)%mod; n>>=1; } res=res%mod return res;}
阅读全文
0 0
- 快速幂&快速幂取模算法
- 快速求幂算法
- 快速求幂算法
- 快速幂算法
- 快速求幂算法
- 快速幂算法
- 快速幂算法
- 快速求幂算法
- 快速求幂算法
- 快速幂算法模板
- 快速幂算法
- 快速幂 -- 算法详解
- 快速幂算法
- 快速幂算法
- 快速幂算法模板
- 快速求幂算法
- 快速幂算法
- 快速幂算法代码
- SQL Server角色成员身份和权限简介
- muduo源码分析之TcpServer
- lua语言学习三变量
- php递归遍历xml
- struts2中action编写的3种方式
- 快速幂算法
- F
- 学习Promise
- Google Guava--让java代码更加优雅
- PAT 1044火星数字
- UCOSii-信号量
- C语言指针专题——使用指针要注意这些
- json解析——fastjson
- [US Giants] 二. Integer-Array