快速幂 c++

一般大家写都是

cpp 复制代码
int ans = 1;
for (int i = 1; i <= a; i ++)
    ans *= x;

时间复杂度

但是这对于我们还不够,我们要


首先我们得知道一个数学知识

那么求 就有以下递归式

a 能2整除

a 不能2整除 (这里a/2是整除)

所以每次都调用 不就是

最后补充一个东西

(i + j = a)

代码:

cpp 复制代码
#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;
} 
相关推荐
lisanndesu4 分钟前
第十五届蓝桥杯 C++A组
c++·蓝桥杯
ZPC82106 分钟前
【无标题】
人工智能·pytorch·算法·机器人
2301_764441338 分钟前
使用python构建的STAR实验ΛΛ̄自旋关联完整仿真
开发语言·python·算法
Rainy Blue88312 分钟前
前缀和与差分(蓝桥杯高频考点)
数据结构·算法·蓝桥杯
Dfreedom.12 分钟前
机器学习经典算法全景解析与演进脉络(无监督学习篇)
人工智能·学习·算法·机器学习·无监督学习
421!18 分钟前
ESP32学习笔记之GPIO
开发语言·笔记·单片机·嵌入式硬件·学习·算法·fpga开发
夏日听雨眠23 分钟前
数据结构(单循环链表)
数据结构·链表
智算菩萨26 分钟前
【How Far Are We From AGI】4 AGI的“生理系统“——从算法架构到算力基座的工程革命
论文阅读·人工智能·深度学习·算法·ai·架构·agi
福赖28 分钟前
《算法:生产车间》
算法
-Excalibur-32 分钟前
IP数据包在计算机网络传输的全过程
java·网络·c++·笔记·python·网络协议·智能路由器