初学快速幂详细讲解
来源:互联网 发布:单片机datesheet是什么 编辑:程序博客网 时间:2024/05/22 00:45
不扯那么多,我就直接讲解快速幂是怎么样求解计算的;
首先你要知道快速幂是把指数b转换为二进制进行权值进位来计算a的b次方的;例如2的11次方;11的二进制位1011,就是8+0+2+1;a的8次方乘a的2次方再乘a的1次方;每次都把a的权值进一位也就是这样的最开始a在1位为a,第一次是a进一位为a的2次方,第二次就是a的4次方。。。依次类推。
再给大家讲几个小知识有助于理解下面的代码:
& 与运算法则 0&0=0;0&1=0;1&0=0;1&1=1 ;
b&1:如果b是个奇数b&1等于1,如果是个偶数b&1为0;
下面就是模板代码给的有注释
/**********如果求a的b次方对某个数取余,数据太大的话,*可以先对a求余,每次计算sum 都对sum进行求余 * 公式的引理,即积的取余等于取余的积的取余。**********/ #include <stdio.h>void Pow(int a, int b){long long Sum;int Base;Sum = 1;Base = a;while(b){if(b&1)Sum *= Base;Base *= Base;//每次位权值进一位;b>>=1; //b向右移一位(也就是b/=2); }printf("%lld\n", Sum); }int main(){int a, b;long long Sum;while(~scanf("%d %d", &a, &b)){Pow(a,b);}return 0; }如果有可以改进的地方,可以在评论给我留言,共同学习,谢谢!
0 0
- 初学快速幂详细讲解
- 葫芦娃关于快速幂流程的详细讲解
- 新手讲排序:详细讲解快速排序
- 快速排序算法详细讲解c++版
- 快速幂讲解
- 快速幂讲解
- 快速幂讲解
- 快速幂讲解
- 快速幂讲解
- 快速幂讲解
- 快速幂讲解
- 快速搭建Struts1.x开发环境详细步骤与讲解
- MySQL 主从复制 详细讲解(二)快速实现
- hdu3306矩阵快速幂讲解
- 快速幂(简单详细)
- 详细讲解
- NS2初学笔记(三)之 最详细讲解ns2运行机制
- NS2初学笔记(三)之 最详细讲解ns2运行机制
- 华为OJ矩阵乘法计算量估算
- Adventure of Super Mario UVA
- code[vs] 1014 装箱问题(01背包)
- C++笔记(二)
- POJ-3686-The Windy's(KM/费用流)
- 初学快速幂详细讲解
- 事件的三个阶段:捕获阶段 目标阶段 冒泡阶段
- C#之类私有成员的安全访问
- redux 配合 react 在项目中的使用(个人总结与备忘)
- Maven+springMVC+Spring框架
- PAT甲级1130
- AES128 ECB加密pkcs5padding补码
- poj 2250 Compromise 记录路径的lcs
- Numpy中的广播(Broadcasting)