51Nod_1004 n^n的末位数字
http://www.51nod.com/Challenge/Problem.html#!#problemId=1004
题目
给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。
输入
一个数N(1 <= N <= 10^9)
输出
输出N^N的末位数字
样例输入
13
样例输出
3
分析
快速模幂法,mod=10
C语言程序
#include<stdio.h>
#define MOD 10
typedef long long LL;
LL fun(LL x,LL n)
{
LL res=1;
while(n){
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",fun(n,n));
return 0;
}