[51nod]1004 n^n的末位數字
阿新 • • 發佈:2017-06-24
ios png col div .cn out ges mes iostream
給出一個整數N,輸出N^N(N的N次方)的十進制表示的末位數字。
Input
一個數N(1 <= N <= 10^9)
Output
輸出N^N的末位數字
Input示例
13
Output示例
3
快速冪
代碼:
#include <iostream> using namespace std; #define LL long long #define Mod 10 LL Pow(LL a, LL n) { int ans = 1; while (n) { if (n & 1) ans = (ans*a)%Mod; a= (a*a)%Mod; n >>= 1; } return ans%10; } int main() { //freopen("1.txt", "r", stdin); int a; cin >> a; cout << Pow(a, a); return 0; }
解二:
其實可以通過找規律來確定,n的n次階乘有如下規律:
4次一循環 所以只用計算1-4次方即可且只計算數字末位
代碼:
#include <iostream> #include <math.h> #include<stdio.h> using namespace std; int main() { //freopen("1.txt", "r", stdin); int n; cin >> n; int a, b; a = n % 10; b = n % 4; if (b == 0) b = 4; cout << (int)pow(a, b)%10; return 0; }
[51nod]1004 n^n的末位數字