51 Nod N^N的末位数字

1004 n^n的末位数字 

题目来源: 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;
}
 

原文地址:https://www.cnblogs.com/linruier/p/9485174.html