51nod 1004 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

每次 mod 10

#include
#include
#include
using namespace std;
#define ll long long
ll mod_pow(ll x,ll n,ll mod)
{
   ll res=1;
    while(n>0)
    {
        if(n&1)
            res=res*x%mod;
        x=x*x%mod;
        n>>=1;
    }
    return res;
}
int main()
{
	ll n;
	scanf("%lld",&n);
	printf("%lld\n",mod_pow(n,n,10));
	return 0;
}

你可能感兴趣的:(1级算法题)