位运算之快速幂
来源:互联网 发布:mac 最好的五笔输入法 编辑:程序博客网 时间:2024/05/21 00:49
快速幂:利用二进制 对数据幂运算的一种高效算法
主要算法:对 整数的二进制位数 进行遍历 ,如果遍历到 1 临时值把结果乘上,如果遍历到 0,用临时变量跳过
举个例子:3的二进制是 11 最后一位为 1 , 进行 临时值与返回值 相乘,返回值为 3 ,临时值进行自乘运算 为 9,之后 N>>=1
右移一位 然后为第一位的 1 再次进行 临时值 与返回值 相乘 ,返回值 为3*9 =27,之后 ans自乘为 81,之后 N右移,循环结束
样例如下:
代码如下:
#include <bits/stdc++.h>using namespace std;int Count(int N){ int A=1; int Ans=N;//注意 如果数太大,int 型会溢出 while(N){ if(N&1) A*=Ans; Ans*=Ans;//注意每一次遍历,临时值 一直进行 自乘运算,为 N的下一位二进制 做好辅助 N>>=1; } return A;}int main(){ int N; scanf("%d",&N); int V=Count(N); printf("%d\n",V); return 0;}
0 0
- 位运算之快速幂
- 关于位运算-快速幂
- 快速求幂(位运算)
- Acm2-快速幂、位运算、递归
- 快速幂之模运算
- 位运算之 -- 按位与(&)操作 -- 快速取模算法
- [备战NOI同步赛]快速幂模板(二分/位运算)
- Rightmost Digit(快速幂+数学知识OR位运算)
- 位运算之美
- 位运算之“|=”
- JavaEE之位运算
- 位运算 之&、 |、 ^
- Java之位运算
- 大数运算之快速幂算法
- 位运算之左移右移运算之详解
- 位运算之左移右移运算之详解
- 位运算之左移右移运算之详解
- 位运算之左移右移运算之详解
- 算法训练 确定元音字母位置
- WebView
- php+mysqli事务
- List+Tuple+Dict知识整理
- ASP.NET Web API 基本操作(CRUD)
- 位运算之快速幂
- UVA 1378 A Funny Stone Game (经典博弈)
- cookie机制和session机制的原理一区别
- 数据链路层主要协议
- 简单工厂模式,工厂方法模式,抽象工厂模式
- 二进制安装mysql
- 欢迎使用CSDN-markdown编辑器
- leecoda第二题
- 9.13 C和C++ 13.8编写一个智能指针类