#include<iostream>
#include<algorithm>
#include<cstdio>
#include<bits/stdc++.h>
#include<string.h>
#include<vector>
#include<unordered_map>
#include<set>
using namespace std;
typedef long long ll;
#define inf 0x3f3f3f3f
typedef pair<int,int> PII;
//循环快速幂
int quickpow1(int a,int n){
int ans=1;
while(n){
if(n&1) ans=ans*a;
n>>=1;
a=a*a;}
return ans;
}
//递归快速幂
int quickpow2(int a,int n){
if(n==0) return 1;
if(n==1) return a;
int b=1;int ans=a;
while((b<<1)<=n){
ans=ans*ans;
b<<=1;
}
return ans*quickpow2(a,n-b);
}
int main(void){
int ans=quickpow1(3,10);
cout<<ans;
}
递归快速幂+循环快速幂
最新推荐文章于 2024-05-05 22:13:06 发布