测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A23518. #include<bits/stdc++.h> using namespace std; int f(int a, int n, int m) { if(a==1) return 1%m; long long ans = 1%m; while(n){ if(n&1) ans = (ans * a) % m; a = (a * a) % m; n >>= 1; } return ans; } in…

判断题 较易

题目描述

#include<bits/stdc++.h>
using namespace std;
int f(int a, int n, int m)
{
    if(a==1) return 1%m;
    long long ans = 1%m;
    while(n){
        if(n&1)
            ans = (ans * a) % m;
        a = (a * a) % m;
        n >>= 1;
    }
    return ans;
}
int main()
{
    int a, n, m;
    cin >> a >> n >> m;
    cout << f(a, n, m);
}

程序的时间复杂度是 O(logn)(    )

选项(单选)

上一题 下一题