Rightmost Digit (二分快速幂)

二分快速幂依据的就是a的n(偶)次方等于a的n/2次方乘以a的n/2次方
若n为奇数则a乘a的n-1次方(变成偶)再重复以上步骤。
附代码:

#include <iostream>
using namespace std;
#define ll long long
ll erfen(int a,int b){
    if(b==0) return 1;
    if(b%2==1) return a*erfen(a,b-1)%10;
    if(b%2==0){
        ll temp=erfen(a,b/2)%10;
        return temp*temp%10;
    }
}
int main(){
    ll t; cin>>t;
    for(int i=0;i<t;i++){
        ll a; cin>>a;
        ll b=erfen(a,a);
        cout<<b<<endl;
    }
}

题目出处

发布了24 篇原创文章 · 获赞 2 · 访问量 467

猜你喜欢

转载自blog.csdn.net/chineseherofeng/article/details/104673509