基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。
Input
一个数N(1 <= N <= 10^9)
Output
输出N^N的末位数字
Input示例
13
Output示例
3
这里就是用快速幂了,
一开始自己写了一个for循环,TLE;
1 #include<stdio.h> 2 using namespace std; 3 typedef long long ll; 4 ll pow_mod(ll a,ll p,ll mod){ 5 ll ans = 1; 6 while(p > 0){ 7 if(p & 1) //判断是否为奇数 8 ans = (ans * a) % mod; 9 p >>= 1;//位运算整体向右移一位 10 a = (a * a) % mod; 11 } 12 return ans; 13 } 14 int main(){ 15 int n; 16 scanf("%d",&n); 17 printf("%lld ",pow_mod(n,n,10)); 18 return 0; 19 }