51Nod 1046 A^B Mod C(快速幂)
来源:互联网 发布:四川水利水电预算软件 编辑:程序博客网 时间:2024/06/07 07:09
题目链接
快速幂
假如计算3^11
把11写成二进制为:1011
现在就可以计算11=2^3+2^1+2^0
3^11=3^(2^3+2^1+2^0)=3^(2^3)*3^(2^1)*3^(2^0)
然后1011和1进行与运算,判断最后一位是否是1,为1的话相乘
然后temp初值为3,代表3的n次方。n一直成倍增加,所有temp每次都是自乘
每次都更新,代表幂的增加,同时b>>1(或着b/=2)
接下来就判断101和1与运算。。。。。最后直接b为0
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;int main(){long long a,b,c;cin>>a>>b>>c;long long sum=1,temp=a;while(b){if(b&1) sum=(sum%c)*(temp%c)%c;temp=(temp%c)*(temp%c)%c;b=b>>1;}cout<<sum;return 0;}
阅读全文
1 0
- 51nod 1046 A^B Mod C (快速幂)
- 51Nod 1046 A^B Mod C(快速幂)
- 51nod 1046 A^B Mod C(快速幂)
- 【51nod】1046 A^B Mod C - 快速幂
- 51Nod-1046 A^B Mod C【快速模幂】
- 51nod 1046 A^B Mod C【快速幂模板】
- 51Nod 1046 A^B Mod C(快速幂)
- 51 nod 1046 A^B Mod C(快速幂取余)
- 51Nod-1046 A^B Mod C(快速幂取模)
- 51Nod-1046-A^B Mod C
- 【51nod】1046 A^B Mod C
- 51nod 1046 A^B Mod C
- 51nod 1046 A^B Mod C
- 51nod 1046 A^B Mod C
- 51nod 1046 A^B Mod C
- 51nod 1046 A^B Mod C
- 51Nod 1046 A^B Mod C
- 51nod 1046 A^B Mod C
- 23章 软件安装
- fopen 和 fclose
- ElasticSearch
- 02ServletConfig、ServletContext
- Linux系统_常用命令总结(全)
- 51Nod 1046 A^B Mod C(快速幂)
- hdu2094 用map
- 编码格式简介:ASCII码、ANSI、GBK、GB2312、GB18030和Unicode、UTF-8,BOM头
- 03GET、POST请求
- 欢迎使用CSDN-markdown编辑器
- Git与GitHub——常用操作
- 你见过比尔盖茨38年前写的MicrosoftBasic代码吗
- 希尔排序
- 游戏开发之NGUI使用笔记