快速求幂二分算法
来源:互联网 发布:视频音量调节软件 编辑:程序博客网 时间:2024/04/30 04:40
#include<stdio.h>int a,b;void input(){int pow1();while(scanf("%d%d",&a,&b)==2){pow1();}}void pow1(){int r,base;base=a;r=1;while(b!=0) {if(b%2){r=r*base;//把结果保留到r当中 }base=base*base;b=b/2;//每次进行缩半,对base=base*base这一步起到约束作用 }printf("%d\n",r);}int main(){input();return 0;}
二分算法
求a^b
二分法:
此处b=b/2;体现二分
base=a;
base=base*base;
可推出a^2,a^4,a^8,a^16..........
所以当b为2^n时
可用如下代码:while(b!=1)
{
base=base*base;
b=b/2;
}
当b不为2^n时
比如b=6;
则按上述代码:
base=a^2; b=2;
base=a^4; b=1
求出结果为a^4,不符,
我们可以观察到a^2和a^4,如果2+4就变成6了,求出结果为a^6
所以只需加个判定条件
我们可以看到a^2时,b=3
所以加个if(b%2)
r=r*base;
同时把while(b!=1)变为while(b)
0 0
- 快速求幂二分算法
- 算法 二分求幂(快速取幂)
- poj3233(快速求幂+二分)
- 快速二分求幂 模板
- 二分求幂,快速求幂
- 快速求幂(二分求幂)
- 快速求幂算法
- 快速求幂算法
- 快速求幂算法
- 快速求幂算法
- 快速求幂算法
- 快速求幂算法
- 快速求幂算法
- 快速求幂算法
- 快速求幂算法
- 快速求幂算法
- 快速求幂算法
- 矩阵快速二分求n次幂
- windows64位下系统文件提示找不到
- 在HTML中打出人民币符号和对勾符号
- 在HTML中打出人民币符号和对勾符号
- 协变(Covariance)与逆变(Contravariance)
- 接口的使用
- 快速求幂二分算法
- Cocos2d继承结构图
- 黑马程序员------Java基础-----基础小结
- Ionic之搭建开发环境,并创建工程
- 多进程模型和Slect模型服务器介绍
- Python Tkinter Checkbutton的使用
- 自然链接
- Android学习笔记.IDE使用eclipse还是studio
- Windows与Ubuntu之间共享文件