Problem A: 快速幂-A
Time Limit: 1 Sec Memory Limit: 128 MB
Description
数学老师给Averyboy出了一道题,老师给他一个数n,想让他计算出n^n的个位数。
但是我们都知道Averyboy的数学不太好,所以他请求聪明的你给出答案。
Input
输入包含多组测试数据,第一行是测试数据的个数T。
之后T行,每行一个数n。(1<= n <= 1e9)
Output
输出n^n的个位数。
解答:
#include <iostream>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
long long n;
cin>>n;
long long a=n,b=n;
long long ans=1;
a=a%10;
while(b>0){
if(b&1) ans=(ans*a)%10;
b=b/2;
a=(a*a)%10;
}
cout<<ans<<endl;
}
return 0;
}