首页 > 代码库 > 1004 n^n的末位数字

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
这里就是用快速幂了,
一开始自己写了一个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\n",pow_mod(n,n,10));
18         return 0;
19 }    

1004 n^n的末位数字