题目来源: Author Ignatius.L (Hdu 1061)
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。
Input
一个数N(1 <= N <= 10^9)
Output
输出N^N的末位数字
Input示例
13
Output示例
3
#include<bits/stdc++.h>
using namespace std;
int ans=1;
int N;
int f(int i)
{
return (i*j)%10;
}
int f2(int k,int n)
{
if(n==0)return 1;
if(n==1)return k;
if(n==2)return (k*k)%10;
int time=log2(n);
for(int i=0;i<time;i++)
{
k=f(k,k);
}
int left=n-pow(2,time);
return (k*f2(N%10,left))%10;
}
int main()
{
cin>>N;
int k=N%10;
ans=f2(k,N);
cout<<ans<<endl;
return 0;
}