邢台seo网站制作,装修网站免费设计,百度客户端官网,各大公司开源网站一般大家写都是
int ans 1;
for (int i 1; i a; i )ans * x;时间复杂度
但是这对于我们还不够#xff0c;我们要 首先我们得知道一个数学知识 那么求 就有以下递归式
a 能被2整除
a 不能被2整除 (这里a/2是整除)
所以每次都调用 不就是么
最后补充一个东西…一般大家写都是
int ans 1;
for (int i 1; i a; i )ans * x;时间复杂度
但是这对于我们还不够我们要 首先我们得知道一个数学知识 那么求 就有以下递归式
a 能被2整除
a 不能被2整除 (这里a/2是整除)
所以每次都调用 不就是么
最后补充一个东西 (i j a)
代码
#include iostream
using namespace std;
typedef long long LL;
LL a, b, m;
//m是取模的数
LL q_pow(LL a, LL b, LL m) {if(b 0)return 1;LL tmp q_pow(a, b 1, m) % m;return (b 1 ? a : 1) * tmp % m * tmp % m;
//b 1 和 b % 2 1 是等价的
}
int main() {cin a b m;cout q_pow(a, b, m);return 0;
}