暨南大学机试题目

考点:快速幂
快速幂模版求得是a的b次方%p
所以这个题做法是a=b=n,p=10
#include<bits/stdc++.h>
using namespace std;
int qmi(int a,int b,int p){
int res=1;
while(b){
if(b&1){
res=res*a%p;
}
b/=2;
a=a*a%p;
}
return res;
}
int main(){
int n;
cin>>n;
cout<<qmi(n%10,n,10);//注意第一个参数表示底数,因为只考虑个位数所以先%10。若不这么做那么 a=a*a%p;会溢出,因为先算a*a的时候就溢出int
return 0;
}

浙公网安备 33010602011771号