《算法竞赛进阶指南》打卡-基本算法-AcWing 89. a^b:位运算、快速幂
生活随笔
收集整理的這篇文章主要介紹了
《算法竞赛进阶指南》打卡-基本算法-AcWing 89. a^b:位运算、快速幂
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目解答
- 題目鏈接
題目解答
分析:快速冪的時間復雜度O(logn)O(logn)O(logn)
快速冪其實就是拆分,把一個大的乘方拆分成多個小的乘方,然后累乘。
下面用到long long ,然后采用的方式是乘以了1ll,這和(long long )類型轉換的效果是一樣的。
ac代碼
#include<bits/stdc++.h> using namespace std;int main(){int a, b, p;cin >> a >> b >> p;int res = 1 % p;while(b){// 取出個位if(b & 1) res = res * 1ll * a % p;a = a * 1ll * a % p;b >>= 1; // 右移1位 = 把個位去掉}cout << res <<endl; }題目鏈接
https://www.acwing.com/problem/content/91/
總結
以上是生活随笔為你收集整理的《算法竞赛进阶指南》打卡-基本算法-AcWing 89. a^b:位运算、快速幂的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSP认证201409-4最优配餐[C+
- 下一篇: 《算法竞赛进阶指南》打卡-基本算法-Ac