#include<bits/stdc++.h>
using namespace std;
//推荐写第一种 第二种是递归写法
int quickpower(int a,int b,int n) {
    int ret=1;
    while(b) {
        if(b%2==1) ret=ret*a%n;
        a=a*a%n;
        b=b/2;
    }
    return ret;
}

int quickpower2(int a,int b,int n) {
    if(b==1)return a;
    if(b%2==0){
        int t=quickpower2(a,b/2,n);
        return t*t%n;
    }else{
        int t=quickpower2(a,b/2,n);
        return (t*t%n)*a%n;
        return t;
    }
}


int main() {
    cout<<quickpower(3,5,10)<<endl;
    cout<<quickpower2(3,5,10);
    
    return 0;
}

 

posted on 2022-08-20 22:00  ljq0120  阅读(37)  评论(0)    收藏  举报