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

题解

这道题可以用快速幂取模来做。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <cmath>
#include <stack>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <utility>
#define ll long long
#define ull_ unsigned long long

using namespace std ;

ll quick_pow( ll a , ll b ){
ll base = a , ans = 1 % 10 ;
while ( b ){
if ( b & 1 ){
ans = (ans % 10 * base % 10) % 10 ;
}
base = base * base % 10 ;
b >>= 1 ;
}
return ans ;
}

int main(){
int n ;
cin >> n ;
cout << quick_pow(n , n) << endl ;
return 0 ;
}