【模板】快速幂
2017-05-21 21:36
176 查看
啊 写这个模板是源于一个悲伤的考试…
基本介绍
模板题目
代码实现
思路就是 n^k拆成 n^k/2*n^k/2
说一下优化:当我们知道了n^k/2的时候 就不用再去递归求另一个n^k/2 直接存一下就好
核心代码
输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。
输入输出格式
输入格式:
三个整数b,p,k.
输出格式:
输出s
s为运算结果
输入输出样例
输入样例:
2 10 9
输出样例:
7
取模的话..貌似不是除法就不会错
基本介绍
模板题目
代码实现
基本介绍
快速幂就是快速计算一个数的多少次幂 意思很好理解思路就是 n^k拆成 n^k/2*n^k/2
说一下优化:当我们知道了n^k/2的时候 就不用再去递归求另一个n^k/2 直接存一下就好
核心代码
int quick(int num) { if(num==0){ return 1; } int tmp=quick(num/2); tmp=(tmp*tmp); if(num%2==1){ tmp=(tmp*b); } return tmp; }
模板题目
题目描述输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。
输入输出格式
输入格式:
三个整数b,p,k.
输出格式:
输出s
s为运算结果
输入输出样例
输入样例:
2 10 9
输出样例:
7
代码实现
#include<iostream> using namespace std; int b,p,k; int quick(int num) { if(num==0){ return 1; } int tmp=quick(num/2)%k; tmp=(tmp*tmp)%k; if(num%2==1){ tmp=(tmp*b)%k; } return tmp; } inline void output() { cout<<quick(p); } inline void input() { cin>>b>>p>>k; b%=k; } int main() { input(); output(); } //COYG
取模的话..貌似不是除法就不会错
相关文章推荐
- 快速幂模板
- VS2010快速生成代码模板功能介绍
- 【BZOJ2179】FFT快速傅立叶 高精度乘模板题
- 寻找更简单、快速的模板处理办法...
- C++模板快速入门
- Expression Blend实例中文教程(12) - 样式和模板快速入门Style,Template
- C++模板快速排序和Stooge排序
- 模板 快速询问GCD
- 矩阵快速幂模板
- 快速解决vue-cli不能初始化webpack模板的问题
- Fibonacci----poj3070(矩阵快速幂, 模板)
- 快速幂模板
- 模板 2018-01-17 快速幂 快速乘
- 如何快速的进行CRM 模板开发
- HOJ 2901 Calculation 快速幂裸模板题
- 矩阵快速幂模板
- 业余爱好者如何通过使用模板快速建站4(How do amateurs build their own websites with a template part-4)
- 快速读入模板使用
- Vue.js——60分钟webpack项目模板快速入门
- 矩阵快速幂模板(可以在二重循环或者三重循环的地方取模)