分治思想求解X的M次幂方
2024-09-01 07:00:38
package main import (
"fmt"
) //递归形式分治求解
func power(x, m int) int {
if m == {
return
} else {
y := power(x, m/)
y = y * y
if m% != {
y = x * y
}
return y
}
} //迭代形式分治求解, 分析可用到如下图
func power2(x, m int) int {
y :=
var k uint32
for k = ; (m >> k) > ; k++ {
}
k--
for k > {
y = y * y
if (m>>k)% > {
y = y * x
}
k--
}
y = y * y
if m% != {
y = y * x
}
return y
}
func main() {
x :=
m :=
fmt.Println(x, "^", m, power(x, m))
fmt.Println(x, "^", m, power2(x, m))
}
//X的任意M次方,可从X的一次方,开始向上迭代产生,而路径的选择则根据M的二进制表示,来选择唯一路径,
比如X^15, 15的二进制形式为1111, 则选择的路径对应上图中的1111, 其他同理
最新文章
- [LeetCode] Gas Station 加油站问题
- BestCoder Round #89 02单调队列优化dp
- Maven+SSM框架实现简单的增删改查
- Centos7 ZooKeeper 安装过程
- PAT乙级 1006. 换个格式输出整数 (15)
- C++导出文件后缀dll,lib,exp,def
- linux下tcpdump命令详解
- java学习笔记04--数组
- Flood-it!
- poj3304计算几何直线与线段关系
- elfinder中通过DirectoryStream.Filter实现筛选隐藏目录(二)
- 编译部署 Mysql 5.7
- HBase应用快速开发
- karaf 控制台 常用linux指令(2)
- C代码快速构建框架
- python新建txt文件,并逐行写入数据
- springcloud 入门 3 (服务之间的调用)
- [LOJ 6030]「雅礼集训 2017 Day1」矩阵
- PAT甲题题解-1091. Acute Stroke (30)-BFS
- 鸟哥的Linux私房菜——第十章
热门文章
- java.lang.UnsupportedOperationException解决方法!!!
- NFS详细分析
- 企业级Nginx服务基础到架构优化详解
- 启动 ./spark-shell 命令报错
- ACE_Svc_Handler 通信原理
- JavaScript跨浏览器事件处理
- 【Python + Selenium】之JS定位总结
- 在Ubuntu下利用Eclipse开发FFmpeg配置小结
- 推荐扔物线的HenCoder Android 开发进阶系列 后期接着更新
- 如何更好的利用Node.js的性能极限