【算法筆記】快速冪的兩種寫法(遞歸法+迭代法)

快速冪的遞歸法

// 求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;
}

總結

學習不息,繼續加油

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章