1. 程式人生 > >[51nod]1004 n^n的末位數字

[51nod]1004 n^n的末位數字

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的末位數字