分治算法求乘方a^b 取余p(divide and conquer)
2024-10-16 06:12:06
传统的计算方法为循环n个a相乘。时间复杂度为O(n)。
如用分治算法,效率可提升至O(lgn)。
结合recursive有
double pow(int a, int n){
if(n==)
return ;
if(n==)
return a;
double t = pow(a,n/);
return t * t * pow(a,n%); }
也可用循环的方法
double pow(int a, int n){
double res = ;
while(n){
if(n%==)
res =res * a;
a = a* a;
n/=;
}
}
最新文章
- Maven入门示例(3):自动部署至外部Tomcat
- C++类功能扩展预留五招
- iOS开发MAC下配置Svn和Git
- react-基础(1)
- perl中读取外部文件
- Web网站数据”实时”更新设计
- js动态加载css文件和js文件的方法
- Monkey学习(1)环境搭建
- 深入理解urllib、urllib2及requests
- ESP32学习笔记(一) 环境搭建与下载
- 实验演示Oracle“多版本一致读”和“Cross DDL”
- LPCTSTR LPCWSTR LPCSTR 含义
- 使用自建Git服务器管理私有项目 Centos 7.3 + Git 2.11.0 + gitosis (实测 笔记)
- TJOI2010中位数
- 实现多线程爬取数据并保存到mongodb
- 文件流 io.StringIo()
- webService之helloword(web)
- 并发编程之 CyclicBarrier 源码分析
- PHP/ThinkPHP5 框架集成微博登录入库流程示意
- 八、curator recipes之选举主节点LeaderSelector