【算法笔记】快速幂的两种写法(递归法+迭代法)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34586921/article/details/87599515

快速幂的递归法

// 求a^b%m 
ll binaryPow(ll a, ll b, ll m) {
	if (b == 0) return 1;
	if (b %2 == 1) {
		return a * binaryPow(a, b-1, m) % m;
	}
	else {
		ll tmp = binaryPow(a, b/2, m);
		return tmp * tmp % m;
	}
}

快速幂的迭代法

// 求a^b%m 
ll binaryPow(ll a, ll b, ll m) {
	ll ret = 1;
	while (b > 0) {
		if (b & 1) {
			ret = ret * a % m;
		}
		ret = ret * ret % m;
		b >>= 1;
	}
	return ret;
}

总结

学习不息,继续加油

展开阅读全文

没有更多推荐了,返回首页