快速幂的实现~~~
来源:互联网 发布:java开发eclipse版本 编辑:程序博客网 时间:2024/04/30 09:53
额~ 用快速幂解决问题 使时间复杂度最简可以达到o(log2n)以内。。。。。还请大牛们多多指教。
因为 x^n=(x^n/2)^2
第一种是用递归的思想:
int pow(int x, int n)
{
if(n==1) return x;
else if(n&1) //表示n为奇数
return x*pow(x,n/2);
else return pow(x,n/2);
}
而第二种是不用递归的思想(但是思路还是一样的):
int pow(int x, int n)
{
int temp(x),rest (1); //直接初始化
while(n)
{
if(n&1)
rest*=temp;
else
temp*=temp;
n>>=1; //这个地方是表示将n的2进制数向右移一位,及n变为n/2
}
return rest;
}
- 快速幂的实现~~~
- 快速幂的实现
- 快速幂的实现
- 快速幂的实现
- 矩阵快速幂的JAVA实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- linux下创建具有root权限的帐号
- 第 3 章 数据类型
- Linux 下修改文件的时间属性
- Fedora 修复模式(maintenance) 下文件系统只读的解决办法
- ssh基础理论知识
- 快速幂的实现~~~
- Fedora 休眠无效
- HeadFirst 设计模式学习笔记21-- 解释者(Interpreter)模式拾零
- Fedora yum 插件 提高源下载速度
- JSP中的EL表达式详细介绍
- Fedora yum 插件 提高源下载速度
- Fedora 13 安装 MPlayer
- 配置数据源和连接池
- Fedora 13 下安装 Wicd